ř子集特定值也返回NA?(R Subsetting Specific Value Also Retu

2019-10-29 05:37发布

我刚开始学习R和跨越一段代码就如下

vec_1 <- c("a","b", NA, "c","d")

# create a subet of all elements which equal "a"
vec_1[vec_1 == "a"]

从这样的结果是

## [1] "a" NA

我只是好奇,因为我子集化vec_1的值“a”,为什么NA也是我的结果显示?

Answer 1:

这是因为任何事物的结果== NANA 。 即使NA == NANA

这里的输出vec_1 == "a" -

[1] TRUE FALSE NA FALSE FALSE

NA是不是TRUEFALSE ,所以当你通过什么子集NANA 。 看一下这个 -

vec_1[NA]
[1] NA NA NA NA NA

当处理NAR试图提供最翔实的答案,即T | NA T | NA返回TRUE ,因为它什么都无所谓NA是。 下面是更多的例子 -

T | NA
[1] TRUE

F | NA
[1] NA

T & NA
[1] NA

F & NA
[1] FALSE

R有没有办法来测试平等NA 。 你的情况,你可以使用%in%运营商-

5 %in% NA
[1] FALSE

"a" %in% NA
[1] FALSE

vec_1[vec_1 %in% "a"]
[1] "a"


文章来源: R Subsetting Specific Value Also Returns NA?
标签: r vector subset