为什么NA==NULL
产生logical (0)
而不是FALSE?
为什么NULL==NULL
会产生logical(0)
而不是TRUE?
答案 0 :(得分:5)
NULL
是一个“零长度”对象,因此任何与NULL
的元素比较或运算都将长度为零:logical(0)
表示长度为零的逻辑向量。您可能会发现identical()
有用:identical(NULL,NULL)
为TRUE,identical(NULL,NA)
为FALSE。另请参见?is.null
,?is.na
,以测试NA
和NULL
的特殊值。
另请参阅:Compare a value to null. Why is this true?
@Dason指出==
进行元素比较;当您对两个不同长度的向量进行元素运算时,R通常会“回收”较短的向量,使其长度等于较长的向量(如果长度不能均分,则发出警告),但是R language definition说
从R 1.4.0开始,任何涉及零长度向量的算术运算都将得到零长度结果。