R中数组索引的算术运算

时间:2012-04-20 18:50:38

标签: arrays r

我创造了价值

I=1:20
> I
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

I[10+1:20]
 [1] 11 12 13 14 15 16 17 18 19 20 NA NA NA NA NA NA NA NA NA NA

我期望数组值为11:20,仅此而已。

但是,如果我使用

I[(10+1):20]
 [1] 11 12 13 14 15 16 17 18 19 20

我得到了预期的答案。

任何线索都将受到赞赏。

谢谢,

桑卡尔

2 个答案:

答案 0 :(得分:1)

:运算符优先。所以正在运行

1:5+5

将首先计算

的输出
1:5

然后将为该数组添加5,产生

6, 7, 8, 9, 10

答案 1 :(得分:1)

使用I[10+1:20],您可以选择长度为20的向量的元素11到30,因此您获得10次NA(对于不存在的元素21,22,...)。在I[(10+1):20]中,您只需选择元素11到20。