由于"is.na(NA("返回true,而"NA> 0"返回NA,因此"is.na(NA(&(NA> 0("应返回NA,这是true。
is.na(NA( & NA>0
[1] 不适用
同样,"!is.na(NA("返回false,"NA> 0"返回NA,"!is.na(NA(&(NA> 0("也应返回NA。但 R 返回 false。这是为什么呢?
!is.na(NA( & NA>0
[1] 错误
根据?"&"
NA 是有效的逻辑对象。如果 x 或 y 的分量为 NA,如果结果不明确,则结果将为 NA。换句话说,NA & TRUE 的计算结果为 NA,但 NA & FALSE 的计算结果为 FALSE。请参阅以下示例。
在 OP 的条件下,第一个计算结果为
TRUE & NA #(is.na(NA)#[1] TRUE;NA > 0#[1] NA)
第二个是
FALSE & NA #(!is.na(NA)#[1] FALSE)