我正在尝试使用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,有类似的问题,但我无法使该解决方案有效。
我该如何解决这个问题?
感谢。
答案 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