具有NA,TRUE和FALSE的逻辑运算符(AND,OR)

时间:2013-05-30 19:14:34

标签: r logical-operators

当与逻辑OR(TRUE)和逻辑AND({{1}一起使用时,我无法理解逻辑(布尔)值FALSENA|的属性}})。以下是一些例子:

&

你能解释一下这些输出吗?

2 个答案:

答案 0 :(得分:26)

引用?Logic

  

NA是一个有效的逻辑对象。当x或y的分量是NA时,   如果结果不明确,结果将是NA。换句话说,NA&   TRUE评估为NA,但NA& FALSE评估为FALSE。见   以下示例。

关键是“模棱两可”这个词。 NA表示“未知”的内容。所以NA & TRUE可能是真或假,但我们不知道。而NA & FALSE无论丢失的值是什么都是假的。

答案 1 :(得分:12)

help("|")中解释:

  

NA是一个有效的逻辑对象。 xy的组件的位置        是NA,如果结果不明确,结果将为NA。在        其他字NA & TRUE评估为NA,但NA & FALSE        评估为FALSE。请参阅以下示例。

来自help("|")中的示例:

x <- c(NA, FALSE, TRUE)
names(x) <- as.character(x)
outer(x, x, "&") ## AND table
#        <NA> FALSE  TRUE
# <NA>     NA FALSE    NA
# FALSE FALSE FALSE FALSE
# TRUE     NA FALSE  TRUE

outer(x, x, "|") ## OR  table
#        <NA> FALSE TRUE
#  <NA>    NA    NA TRUE
# FALSE    NA FALSE TRUE
#  TRUE  TRUE  TRUE TRUE