R计算一系列的总和

Pro*_*man 1 r

假设我有一列数字如下:

Y=
1
2
3
4
5
6
34
32
23
Run Code Online (Sandbox Code Playgroud)

我有一个阵列 R1 = (1,3,7,8)

我想通过使用R1中定义的下标来实现添加Y的元素.我需要生成值的数组喜欢:选自Y开始数的总和[1]〜Y [3]作为我的第一元件,从Y [3]至Y [7]作为我的第二元件,和开始数的总和从Y [7]到Y [8]作为我的第三个元素,依此类推.

42-*_*42- 5

embed函数对于构造此处所需的偏移量系列非常有用:

embed(R1,2)
     [,1] [,2]
[1,]    3    1
[2,]    7    3
[3,]    8    7
# So this becomes a simple one-liner:
 apply(embed(R1, 2) , 1, function(x) sum(Y[x[2]:x[1]]) )
#[1]  6 52 66
Run Code Online (Sandbox Code Playgroud)