如何使用ifelse

时间:2019-04-28 14:56:51

标签: r

我一直在尝试将列变量genhlth的五个类别细分为“良好健康”或“不良健康”。到目前为止,我已经尝试了这段代码。 将这5个类别分为2类的最佳方法是什么?

brfss2013_subset2$goodhealth = ifelse(brfss2013_subset2$genhlth =="Excellent",
                                        "Very good", "Good", 1, 
                                    ifelse(is.na(brfss2013_subset2$genhlth), NA, 0))

1 个答案:

答案 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"))