Rem*_*i.b 18 r logical-operators
我无法理解逻辑(布尔)值的属性TRUE,FALSE以及NA与逻辑OR(|)和逻辑AND(&)一起使用时.这里有些例子:
NA | TRUE
# [1] TRUE
NA | FALSE
# [1] NA
NA & TRUE
# [1] NA
NA & FALSE
# [1] FALSE
你能解释一下这些输出吗?
jor*_*ran 27
引用来自?Logic:
NA是一个有效的逻辑对象.如果x或y的分量是NA,如果结果不明确,则结果将是NA.换句话说,NA&TRUE评估为NA,但NA&FALSE评估为FALSE.请参阅以下示例.
关键是"模棱两可"这个词.NA代表"未知"的东西.所以NA & TRUE可能是真或假,但我们不知道.而NA & FALSE将是错误的,无论缺失值是什么.
Jos*_*ich 12
它的解释help("|")如下:
NA是一个有效的逻辑对象.其中的一个组成部分x或者y是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