我無法理解的邏輯(布爾值)的屬性值TRUE
,FALSE
和NA
。以下是一些示例:邏輯運算符(AND,OR)與NA,真假
NA | TRUE
# [1] TRUE
NA | FALSE
# [1] NA
NA & TRUE
# [1] NA
NA & FALSE
# [1] FALSE
您能解釋這些輸出嗎?
我無法理解的邏輯(布爾值)的屬性值TRUE
,FALSE
和NA
。以下是一些示例:邏輯運算符(AND,OR)與NA,真假
NA | TRUE
# [1] TRUE
NA | FALSE
# [1] NA
NA & TRUE
# [1] NA
NA & FALSE
# [1] FALSE
您能解釋這些輸出嗎?
要從?Logic
引述如下:
NA是一個有效的邏輯對象。如果x或y的分量是NA,如果結果不明確,則結果將爲NA。換句話說,NA & TRUE評估爲NA,但NA & FALSE評估爲FALSE。請參閱下面的 示例。
關鍵在於「不明確」一詞。 NA
代表「未知」的東西。所以NA & TRUE
可能是真或假,但我們不知道。不管缺失值是什麼,NA & FALSE
都是錯誤的。
它在help("|")
解釋說:
‘NA’ is a valid logical object. Where a component of ‘x’ or ‘y’
is ‘NA’, the result will be ‘NA’ if the outcome is ambiguous. In
other words ‘NA & TRUE’ evaluates to ‘NA’, but ‘NA & FALSE’
evaluates to ‘FALSE’. See the examples below.
從例子中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