%在%operator vs==中,处理NA';s

%在%operator vs==中,处理NA';s,r,R,我想知道我的代码出了什么问题,发现我奇怪结果的原因是,==和%in%对NA的意外处理 > NA %in% NA [1] TRUE > NA == NA [1] NA 这有什么原因吗?我一直在阅读==操作符及其对NA的处理,但找不到任何关于%中的%操作符对NA的处理不同的信息。如果您使用查看NA文档?“==”,它表示“缺少值(NA)”NaN值甚至被视为不可比,因此涉及NaN值的比较将始终导致NA。” 还请注意,您可以使用相同的功能,即相同(NA,NA)您不能使用==测试NA。您必须使

我想知道我的代码出了什么问题,发现我奇怪结果的原因是,
==
%in%
对NA的意外处理

> NA %in% NA
[1] TRUE
> NA == NA
[1] NA

这有什么原因吗?我一直在阅读
==
操作符及其对
NA
的处理,但找不到任何关于%中的
%操作符对NA的处理不同的信息。

如果您使用
查看
NA
文档?“==”
,它表示“缺少值(NA)”NaN值甚至被视为不可比,因此涉及NaN值的比较将始终导致NA。”


还请注意,您可以使用相同的功能,即
相同(NA,NA)

您不能使用
==
测试
NA
。您必须使用
is.na()
。此外,
匹配的文档(这就是%
%的定义)说明:“在某种程度上,确切地说,什么符合什么是一个定义问题。对于所有类型,NA与NA匹配,没有其他值。对于实值和复杂值,NaN值被视为与任何其他NaN值匹配,但与NA不匹配。“谢谢,这是有意义的!而且我不知道%in%基于match(),因此我没有正确地进行我自己的研究。如果您不知道,使用带
的引号将获得运算符的文档,例如:
?%in%“