【发布时间】:2018-02-12 16:29:47
【问题描述】:
数据范围从 -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)))
【问题讨论】:
-
您的问题是订购。条件是按顺序检查的,小于 -2.5 的任何人也小于 -1,因此您将事物结构化的方式并不是真正的 else...
-
在构建这样的结构时,有助于按照数字线进行分配。从
Tscore <= -2.5开始,然后是Tscore < -1,然后是Tscore >= -1。但是使用cut(如下面的答案)将有助于避免这些陷阱 -
刚刚意识到您从右到左遍历了数轴。如果您在第二步中使用了
Tscore > -2.5,然后再使用Tscore <= 2.5,您将得到您想要的结果。