切片R矢量

时间:2013-06-14 14:06:22

标签: r

代码

nobs <- 10
nskip <- 3
x <- 1:nobs    
print(x)    
print(x[4:10])    
print(x[nskip+1:nobs])

输出

[1]  1  2  3  4  5  6  7  8  9 10    
[1]  4  5  6  7  8  9 10   
[1]  4  5  6  7  8  9 10 NA NA NA

我不明白为什么最后两行输出不同 - 为什么有NA?

2 个答案:

答案 0 :(得分:3)

将括号括起来(nskip + 1),操作顺序就像关闭一样。

答案 1 :(得分:1)

你缺少一些括号。看看你这样做时得到的序列

nskip + 1:nobs
# 4  5  6  7  8  9 10 11 12 13

它生成从1到nobs的序列,然后将nskip添加到每个元素。您收到NA,因为x中不存在元素11到13。

您需要包含括号以生成正确的序列。

print(x[(nskip+1):nobs])

现在,首先评估括号之间的部分,然后在(nskip + 1)nobs之间生成序列。