【问题标题】:Is there a way to convert integers in a column to character in R?有没有办法将列中的整数转换为 R 中的字符?
【发布时间】:2021-11-16 05:07:47
【问题描述】:
我有一个数据框,其中包含不同临床变量的患者是否患有心力衰竭?
我有一列作为性别,其值为 0 和 1,0 对应于女性,1 对应于男性?
我的问题是
如何从中获取我的数据框列
gender
1
1
0
1
0
0
到这个...
gender
Female
Male
Male
Female
Male
Female
Female
有没有办法将整数 0、1 转换为文本“女”和“男”
【问题讨论】:
标签:
r
data-analysis
data-manipulation
【解决方案1】:
ifelse() 可以这样工作:
df <- data.frame(gender = c(1,0,1,0,3))
df$gender2 <- ifelse(df$gender == 1, "Male", "Female")
df
#> gender gender2
#> 1 1 Male
#> 2 0 Female
#> 3 1 Male
#> 4 0 Female
#> 5 3 Female
还可以叠加多个条件:
df$gender3 <- ifelse(df$gender == 1, "Male",
ifelse(df$gender == 0, "Female", NA))
df
#> gender gender2 gender3
#> 1 1 Male Male
#> 2 0 Female Female
#> 3 1 Male Male
#> 4 0 Female Female
#> 5 3 Female <NA>
【解决方案2】:
我们可以在转换为索引后通过添加 1 来传递替换向量。在R中,索引是从1开始的,所以0、1加1,值分别变为1和2,可以作为替换的位置索引
df1$gender <- c("Female", "Male")[df1$gender + 1]