为什么NA​​ == NULL,NULL == NULL打印逻辑(0)?

时间:2019-09-28 16:40:25

标签: r

为什么NA==NULL产生logical (0)而不是FALSE?

为什么NULL==NULL会产生logical(0)而不是TRUE?

1 个答案:

答案 0 :(得分:5)

NULL是一个“零长度”对象,因此任何与NULL的元素比较或运算都将长度为零:logical(0)表示长度为零的逻辑向量。您可能会发现identical()有用:identical(NULL,NULL)为TRUE,identical(NULL,NA)为FALSE。另请参见?is.null?is.na,以测试NANULL的特殊值。

另请参阅:Compare a value to null. Why is this true?

@Dason指出==进行元素比较;当您对两个不同长度的向量进行元素运算时,R通常会“回收”较短的向量,使其长度等于较长的向量(如果长度不能均分,则发出警告),但是R language definition

  

从R 1.4.0开始,任何涉及零长度向量的算术运算都将得到零长度结果。