首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Tidyverse将整数转换为R中的向量

使用Tidyverse将整数转换为R中的向量
EN

Stack Overflow用户
提问于 2020-11-10 19:21:34
回答 2查看 39关注 0票数 0

在我的数据集中,有一列包含整数,这些数字表示在医疗过程后是否有“无”(0)、“轻微”(1)或“严重”(2)出血。

如何将这些整数值转换为描述性名称?我试着用factor(levels = bleed, labels = c("none", "slight", "severe"))解决这个问题,但这不符合我的Tidyverse风格,%>%-piped数据争论。

如何将这些数字转换为描述性标签?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-10 19:27:43

在类似tidyverse的管道中,可以在mutate语句中使用recode函数

代码语言:javascript
运行
复制
library(dplyr)

df %>%
  mutate(your_int_var = recode(your_int_var, `0` = 'no', `1` = 'slight', `2` = 'severe'))

或者使用无引号拼接!!!更好

代码语言:javascript
运行
复制
values <- c(`0` = 'no', `1` = 'slight', `2` = 'severe')

df %>% 
  mutate(your_int_var = recode(your_int_var, !!!values))
票数 1
EN

Stack Overflow用户

发布于 2020-11-10 19:24:09

如果您只需将整数向量加1,则可以使用简单的索引。

在基数R中,如下所示:

代码语言:javascript
运行
复制
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中:

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64767941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档