【问题标题】:Finding the index of an NA value in a vector [duplicate]在向量中查找 NA 值的索引 [重复]
【发布时间】:2014-05-24 00:49:30
【问题描述】:

我有以下向量:

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 已经在下面回答了这个问题,但是谁能解释为什么上面的代码不起作用?

【问题讨论】:

  • @Ben,很好地利用了金徽章的超能力。
  • @SavedByJESUS "NA" 是字符,NA 是特殊类型的变量。无法使用 == 比较 NA。为此,您拥有is.na 功能。使用==NA 相比的任何内容都将导致NA(您想要索引而不是NA)。尝试以下操作:NA == "NA" AND NA == NA

标签: r vector na


【解决方案1】:

您可能想尝试以下列方式使用whichis.na 函数:

which(is.na(x))
[1] 3

【讨论】:

  • 与管道%&gt;% which(is.na(.))一起使用时似乎不起作用
  • @AlvaroMorales 如果您一直使用管道,它实际上可以工作。例如:x %&gt;% is.na() %&gt;% which()
猜你喜欢
  • 2021-11-25
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
  • 2017-03-08
  • 1970-01-01
相关资源
最近更新 更多