使用缺少数据的ifelse构造一个新变量

时间:2014-10-23 02:28:33

标签: r if-statement

我正在尝试使用ifelse语句构建一个新变量,该语句表明如果你的MMSE分数<24或者w1或w2的快速分数> = 4你被归类为1,如果不是0 。

数据框。

   mmse_w1 mmse_w2 fast_w1 fast_w2
1        27      29       1       1
2        28      25       1      13
5        30      22       1       4
7        16       4       4      16
38       25      NA       2      NA
45        0      NA      11      NA
72       NA      NA      10      NA
414      NA      NA      NA      NA

dat$dementia <- with(dat, ifelse(mmse_w1 <24 | fast_w1 >=4 | mmse_w2 <24 | fast_w2 >=4, 1, 0))

    mmse_w1 mmse_w2 fast_w1 fast_w2 dementia
1        27      29       1       1        0
2        28      25       1      13        1
5        30      22       1       4        1
7        16       4       4      16        1
38       25      NA       2      NA       NA
45        0      NA      11      NA        1
72       NA      NA      10      NA        1
414      NA      NA      NA      NA       NA

然而,对于像38号这样的情况,你在w2处缺少数据并且MMSE> 24或者快速<4,则案例被归类为NA而不是0。

我看到这个post,有类似的问题,但我无法使该解决方案有效。

我该如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:3)

由于TRUE为1且内部FALSE为0,pmax会为您执行此操作:

with(dat, pmax(mmse_w1 <24,fast_w1 >=4,mmse_w2 <24,fast_w2 >=4,na.rm=TRUE) )
#[1]  0  1  1  1  0  1  1 NA