我有以下向量:
x <- c(3, 7, NA, 4, 8)
我只想知道向量中NA
的索引。例如,如果我想知道7
的索引,以下代码将起作用:
> which(x == 7)
[1] 2
我觉得有点奇怪,当我试图找到NA
的索引时运行相同的代码并没有给我想要的结果。
> which(x == NA)
integer(0)
我也尝试了以下方法,但它没有起作用:
> which(x == "NA")
integer(0)
非常感谢你的帮助。
编辑
问题已经被@ccapizzano回答了,但是有人能解释一下为什么上面的代码不起作用吗?
"NA"
是字符,而NA
是一种特殊类型的变量。使用==
无法比较NA
。为此,您需要使用is.na
函数。任何使用==
与NA
进行比较的结果都将是NA
(您想要的是索引而不是NA
)。请尝试以下内容:NA == "NA"
和NA == NA
。 - Wakan Tanka