使用NA进行索引

时间:2016-08-17 08:46:21

标签: r indexing

我在理解这段代码时遇到了问题

x <- 1:5; x[NA] 
[1] NA NA NA NA NA

我的第一个想法是R检查1-5是NA还是

x <- c(NA, 2, 4); x[NA] 
NA NA NA.

所以这不是解决方案。我的第二种方法是x[NA]正在索引,但后来我不明白

  1. 为什么这会给我五个NA's
  2. 作为指数的NA意味着什么。 x[1]为您提供了第一个值,但应该是x[NA]的结果?

1 个答案:

答案 0 :(得分:1)

比较你的代码:

> x <- 1:5; x[NA] 
[1] NA NA NA NA NA

> x <- 1:5; x[NA_integer_] 
[1] NA

在第一种情况下,NA的类型为逻辑(class(NA)显示),而在第二种情况下,它是一个整数。从?"["开始,您可以看到i合乎逻辑的情况,它会被回收到x的长度:

  

对于[-indexing only:i,j,...可以是逻辑向量,表示   要选择的元素/切片。如果需要,可以回收这些载体   匹配相应的范围。我,j,...也可以是否定的   整数,表示要从选择中删除的元素/切片。