如何使用R将数据帧中的性别从整数转换为字符
在我的数据框中有一列,其中性别分别编码为1和0,表示男性和女性。它不是复制品,但看起来像这样:如何使用R将数据帧中的性别从整数转换为字符,r,R,在我的数据框中有一列,其中性别分别编码为1和0,表示男性和女性。它不是复制品,但看起来像这样: df <- read.csv("df.csv") " Gender Age Width 1 0 35 1.4 2 0 30 1.4 3 1 32 1.3 4 1 31 1.5
df <- read.csv("df.csv")
" Gender Age Width
1 0 35 1.4
2 0 30 1.4
3 1 32 1.3
4 1 31 1.5
5 0 36 1.4
6 1 39 1.7 "
df当我重新构建您的输入时,您所做的一切似乎都是正确的
Gender <- c(1,0,1,0)
Age <- c(50,30,40,30)
df <- data.frame(Gender,Age)
df$Gender <- factor(df$Gender,
levels = c("1","0"),
labels = c("male", "female"))
print(df$Gender)
Gender您可以使用
library(tidyverse)
df %>%
mutate(gender = factor(Gender, labels = c("male", "female")))
或者干脆
df$gender <- ifelse(df$Gender == 1,"male","female")
或
资料
使用ifelse(df$Gender==1,“male”,“female”)
@bappad因为我仍然得到相同的输出什么是输出odlevels(df$Gender)
@Roman[1]“male”“female”请以dput(df)
格式提供您的数据。看见
df <- read.csv("df.csv", stringsAsFactors = FALSE)
library(tidyverse)
df %>%
mutate(gender = factor(Gender, labels = c("male", "female")))
df$gender <- ifelse(df$Gender == 1,"male","female")
df %>%
mutate(gender = if_else(Gender == 1,"male","female"))
df %>%
mutate(gender = case_when(Gender == 1 ~ "male",
Gender == 0 ~ "female"))
df = structure(list(Sn = 1:6, Gender = c(0L, 0L, 1L, 1L, 0L, 1L),
Age = c(35L, 30L, 32L, 31L, 36L, 39L), Width = c(1.4, 1.4,
1.3, 1.5, 1.4, 1.7), gender = c("female", "female", "male",
"male", "female", "male")), row.names = c(NA, -6L), class = "data.frame")