我一直在尝试将列变量genhlth的五个类别细分为“良好健康”或“不良健康”。到目前为止,我已经尝试了这段代码。 将这5个类别分为2类的最佳方法是什么?
brfss2013_subset2$goodhealth = ifelse(brfss2013_subset2$genhlth =="Excellent",
"Very good", "Good", 1,
ifelse(is.na(brfss2013_subset2$genhlth), NA, 0))
答案 0 :(得分:1)
使用%in%
运算符可以检查可能值的向量。
brfss2013_subset2$goodhealth = ifelse(brfss2013_subset2$genhlth %in% c("Excellent", "Very good", "Good"), 1, 0)
您不需要检查NA
,因为如果输入为ifelse()
,NA
将自动返回NA
。
您还可以利用TRUE
的数字表示为1而FALSE
的数字表示为0的事实,并写出:
brfss2013_subset2$goodhealth = as.numeric(brfss2013_subset2$genhlth %in% c("Excellent", "Very good", "Good"))