1

对于代码

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?

4

2 回答 2

3

在 (nskip+1) 周围加上括号,操作顺序与您一样。

于 2013-06-14T14:09:23.897 回答
1

您缺少一些括号。查看执行此操作时得到的序列

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

它生成从 1 到nobs然后添加nskip到每个元素的序列。你得到NAs 因为元素 11 到 13 中不存在x

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

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

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

于 2013-06-14T14:12:43.087 回答