在我的数据集中,有一列包含整数,这些数字表示在医疗过程后是否有“无”(0)、“轻微”(1)或“严重”(2)出血。
如何将这些整数值转换为描述性名称?我试着用factor(levels = bleed, labels = c("none", "slight", "severe"))
解决这个问题,但这不符合我的Tidyverse风格,%>%
-piped数据争论。
如何将这些数字转换为描述性标签?
发布于 2020-11-10 19:27:43
在类似tidyverse的管道中,可以在mutate
语句中使用recode
函数
library(dplyr)
df %>%
mutate(your_int_var = recode(your_int_var, `0` = 'no', `1` = 'slight', `2` = 'severe'))
或者使用无引号拼接!!!
更好
values <- c(`0` = 'no', `1` = 'slight', `2` = 'severe')
df %>%
mutate(your_int_var = recode(your_int_var, !!!values))
发布于 2020-11-10 19:24:09
如果您只需将整数向量加1,则可以使用简单的索引。
在基数R中,如下所示:
bleeding <- c(0, 1, 0, 1, 1, 0, 2, 2, 0, 1)
values <- c("no", "slight", "severe")
bleeding <- values[bleeding + 1]
bleeding
#> [1] "no" "slight" "no" "slight" "slight" "no" "severe" "severe"
#> [9] "no" "slight"
或者在tidyverse中:
df <- data.frame(bleeding = c(0, 1, 0, 1, 1, 0, 2, 2, 0, 1))
df %>% mutate(bleeding = c("no", "slight", "severe")[bleeding + 1])
#> bleeding
#> 1 no
#> 2 slight
#> 3 no
#> 4 slight
#> 5 slight
#> 6 no
#> 7 severe
#> 8 severe
#> 9 no
#> 10 slight
https://stackoverflow.com/questions/64767941
复制相似问题