[英]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.