数据范围从-6到6,我正在尝试创建3个类别,但即使有人在场,我的功能也没有为类别2返回任何人
FFMIBMDcopdcases$lowBMD = ifelse((FFMIBMDcopdcases$copd_Tscore >= -1) , 0,
ifelse((FFMIBMDcopdcases$copd_Tscore < -1), 1,
ifelse((FFMIBMDcopdcases$copd_Tscore <= -2.5), 2, NA)))
答案 0 :(得分:0)
尝试使用cut
功能。例如:
myValues <- runif(n = 20, min = -6, max = 6)
as.numeric(as.character(cut(x = myValues, breaks = c(-Inf, -2.5, -1, Inf), labels = c(2, 1, 0))))
答案 1 :(得分:0)
由于您需要数值结果,因此最简单的方法是使用findInterval,尽管您需要从2中减去结果以获得相反的顺序(2表示最低,0表示最高):
FFMIBMDcopdcases$lowBMD = 2 - findInterval(FFMIBMDcopdcases$copd_Tscore ,
c(-Inf, -2.5, -1, Inf) )