我首先想知道为什么FALSE | NA
退货#> [1] NA
,而TRUE | NA
返回#> [1] TRUE
。
然后,我读了这样的解释:“由于NA | FALSE
中缺少元素的值很重要,因此这些元素将丢失”。所以我尝试了TRUE | FALSE
和FALSE | TRUE
。确实,两者都回来了#>[1] TRUE
。有道理的是,因为NA | FALSE
的结果取决于NA的值,所以它返回NA,而NA的值对于NA | TRUE
为TRUE并不重要。但是,有人可以解释为什么TRUE | FALSE
返回TRUE吗?谢谢!
本质上,它询问至少一侧是TRUE
。由于存在一个TRUE
值,因此结果也是TRUE
。
与:相同:
1 > 0 | 0 > 2
[1] TRUE
相反,当询问是否所有边都为TRUE
时:
TRUE & FALSE
[1] FALSE
与数字示例一样:
1 > 0 & 0 > 2
[1] FALSE
对于操作|
,输出为TRUE
,只要其条件中的至少一个为TRUE
。例如,TRUE | FALSE| FALSE | FALSE
给出TRUE
,但是FALSE | FALSE| FALSE | FALSE
给出FALSE
,因为它没有TRUE
条件。
因为NA
可能是TRUE
或FALSE
,但您不知道它到底是什么。
从这个意义上讲,FALSE | NA
可能等效于FALSE | TRUE
(给出TRUE
)或FALSE | FALSE
(给出FALSE
),这是两种可能性,但仍然不可用,因此FALSE | NA
返回NA
。
但是,对于TRUE | NA
,它始终为TRUE
,因为它不依赖于NA
(NA
,因为TRUE
或FALSE
都不会影响结果)