R个案将无法识别is.na()的结果

时间:2015-10-21 19:31:12

标签: r switch-statement warnings

我正在尝试从向量d创建一个因子,指示d的每个值是否缺失,小于threshhold,还是大于/等于{{1} }。我尝试使用以下代码,使用threshhold包中的cases函数。

memisc

并收到警告:threshhold = 5 d <- sample(c(1:10, NaN), 50, replace=TRUE) d_case <- cases( is.na(d), d > threshhold, d <= threshhold )

我也尝试过使用赋值运算符

In cases(is.na(d), d > threshhold,  :
  condition is.na(d) is never satisfied

并得到了同样的警告。我已经检查了,d_case <- cases( is.na(d) -> 0, d > threshhold -> 1, d <= threshhold -> 2 ) 确实包含d个值,NaN应该返回true(当我在案例之外检查时)。有谁知道为什么案例不起作用,或者我能做些什么来获得我需要的指标因素?

2 个答案:

答案 0 :(得分:0)

根据您可以这样做的文件查看?cases

d <- c(-1:3,NA,1:2)
fun <- function(x){
  cases(
    is.na(x)        -> 0,
    x > threshhold  -> 1,
    x <= threshhold -> 2
  )
}
d_case <- fun(d)
d_cases

答案 1 :(得分:0)

怎么样:

addNA(as.factor(d>threshold))
....
Levels: FALSE TRUE <NA>