繁体   English   中英

如何将现有变量中的单个值分组到 R 中的新变量中

[英]How to group individual values from an existing variable into a new variable in R

我是 R 的新手,我被卡住了。 我正在研究一个健康数据集,每行作为一个患者的信息。

我有一个名为 diag_codes 的变量。 它以诊断代码/编号的形式显示患者的医疗状况。 我想将个体状况代码分为更广泛的类别(心脏病、呼吸系统疾病、肝病),并将其作为一个新变量。

例如,我知道 1,2,3,4,84 都是呼吸道疾病。 我也知道5、6、7、32、56都是心血管疾病。 我想创建一个名为诊断的新变量。

诊断代码 诊断
1 “呼吸病”
2 “呼吸病”
56 “心血管疾病”
3 “呼吸病”
4 “呼吸病”
84 “呼吸病”
5 “心血管疾病”
6 “心血管疾病”
7 “心血管疾病”
32 “心血管疾病”

我曾尝试使用 case_when() 和 mutate(),或者 ifelse() 和 mutate(),但它们通常涉及单个真或假条件。

我希望能够做这样的事情(我知道这是不正确的):

data <- data %>%
mutate(diagnosis = case_when(diag_code==c(1,2,3,5,84)) ~ "Resp disease",
                   case_when(diag_code==c(5,6,7,32,56)) ~ "CVD disease", 
                   TRUE ~ "Unknown)

您需要纠正两件事才能使其正常工作:

首先,您只能使用一个case_when()语句,其次,当您想要评估一个向量时,您可以使用%in%而不是== 这应该看起来像这样:

data <- data %>%
mutate(diagnosis = case_when(diag_code %in% c(1,2,3,5,84) ~ "Resp disease",
                             diag_code %in% c(5,6,7,32,56) ~ "CVD disease", 
                             TRUE ~ "Unknown)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM