为什么是NA |否=不适用? [重复]

问题描述 投票:4回答:2

我首先想知道为什么FALSE | NA退货#> [1] NA,而TRUE | NA返回#> [1] TRUE

然后,我读了这样的解释:“由于NA | FALSE中缺少元素的值很重要,因此这些元素将丢失”。所以我尝试了TRUE | FALSEFALSE | TRUE。确实,两者都回来了#>[1] TRUE。有道理的是,因为NA | FALSE的结果取决于NA的值,所以它返回NA,而NA的值对于NA | TRUE为TRUE并不重要。但是,有人可以解释为什么TRUE | FALSE返回TRUE吗?谢谢!

r boolean logical-operators
2个回答
3
投票

本质上,它询问至少一侧是TRUE。由于存在一个TRUE值,因此结果也是TRUE

与:相同:

1 > 0 | 0 > 2
[1] TRUE

相反,当询问是否所有边都为TRUE时:

TRUE & FALSE
[1] FALSE

与数字示例一样:

1 > 0 & 0 > 2
[1] FALSE

1
投票

对于操作|输出为TRUE,只要其条件中的至少一个为TRUE。例如,TRUE | FALSE| FALSE | FALSE给出TRUE,但是FALSE | FALSE| FALSE | FALSE给出FALSE,因为它没有TRUE条件。

因为NA可能是TRUEFALSE,但您不知道它到底是什么。

  • 从这个意义上讲,FALSE | NA可能等效于FALSE | TRUE(给出TRUE)或FALSE | FALSE(给出FALSE),这是两种可能性,但仍然不可用,因此FALSE | NA返回NA

  • 但是,对于TRUE | NA,它始终为TRUE,因为它不依赖于NANA,因为TRUEFALSE都不会影响结果)

© www.soinside.com 2019 - 2024. All rights reserved.