我在理解这段代码时遇到了问题
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]
正在索引,但后来我不明白
NA's
x[1]
为您提供了第一个值,但应该是x[NA]
的结果?答案 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,...也可以是否定的 整数,表示要从选择中删除的元素/切片。