2016-08-17 83 views
0

我理解这个代码行索引与NA

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]的结果?
+0

作为输出你期望什么? – akrun

+0

看到[这个类似的帖子](http://stackoverflow.com/questions/23406124/na-in-subsetter-inconsistent-behavior) –

+0

@ zx8754:所以R检查1是否在位置NA,但这是NA,因为有没有地位不适用。现在它进入下一个值2这里是同样的问题等等? – ruedi

回答

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:I,J,......可以是逻辑矢量,表示 元件/切片来选择。如果需要,这些载体将被回收到与相应范围匹配的 。 i,j,...也可以是负数,表示元素/切片不在选择范围内。