为什么{1}}或complete.cases
都没有为第1行返回FALSE?基于他们的文档,他们似乎应该......我在阅读文档错了吗?
anyNA
答案 0 :(得分:3)
您眼睛的第一个明显异常表示无法理解&&
和&
之间的差异。匿名函数被赋予一个3元素向量,complete.cases
为第一行返回:
complete.cases( c(100,1,NA) )
[1] TRUE TRUE FALSE
&&
函数仅处理给定的每个向量的第一项,因此它为第一行返回TRUE。可以说这里警告可能是合适的。如果您想要测试缺少NA
的内容并且它恰好是正在考虑的向量,我会使用all( !is.na(.))
csv$complete<-apply(csv,1,function(x){x[1]==100 && x[2]==1 && all(!is.na((x)) )})
csv$complete2<-apply(csv,1,function(x){x[1]==100 && x[2]==1 && anyNA(x, recursive = FALSE)})
> csv
c.100..50..100. c.1..1..1. c.NA..12..NA. complete complete2
1 100 1 NA FALSE TRUE
2 50 1 12 FALSE FALSE
3 100 1 NA FALSE TRUE
anyNA应该被&#34;!&#34;否定。如果(从上下文看来)你预计所有的complete2也都是FALSE。