重复或循环参数

Mic*_*ski 5 r vector repeat

我对R很熟悉,因为我已经使用它几年了.不幸的是,我不太精通创建涉及循环或重复方程的函数.问题如下:

我有一个包含超过1000个值的向量.我想计算两个相等大小的并置方法与该向量的子集之间的绝对差值.

这是一个例子.

我有长度为8的向量(vec)

 [1]  0.12472963  1.15341289 -1.09662288 -0.73241639  0.06437658 -0.13647136 -1.52592048  1.46450084  
Run Code Online (Sandbox Code Playgroud)

我想计算前2个值的平均值(0.12472963,1.15341289)并获得与以下2个值(-1.09662288 -0.73241639)的平均值的绝对差值,然后沿着向量工作.

在这种情况下,我可以轻松使用以下等式:

abs(mean(vec[1:2])-mean(vec[3:4]))
Run Code Online (Sandbox Code Playgroud)

并逐步增加每个数字1,以便手动向下工作直到向量结束.我会得到以下矢量.

[1]  1.553591  0.3624149  0.8784722  0.497176  0.005337574
Run Code Online (Sandbox Code Playgroud)

然而,我希望有一个自动例程,使我可以在长向量上执行此操作并更改用于计算均值的值的数量.

在我看来它应该相对简单,但我不知道从哪里开始.

Rol*_*and 7

用途filter:

c(abs(filter(vec, c(0.5, 0.5, -0.5, -0.5), sides=1)[-(1:3)]))
#[1] 1.55359090 0.36241491 0.87847224 0.49717601 0.00533757
Run Code Online (Sandbox Code Playgroud)