【发布时间】:2014-10-22 17:08:56
【问题描述】:
我对 R 非常熟悉,因为我已经使用它几年了。不幸的是,我不太擅长创建涉及循环或重复等式的函数。问题如下:
我有一个包含 1000 多个值的向量。我想从该向量的子集计算两个大小相等的并列平均值之间的绝对差。
这是一个例子。
我有长度为 8 的向量 (vec)
[1] 0.12472963 1.15341289 -1.09662288 -0.73241639 0.06437658 -0.13647136 -1.52592048 1.46450084
我想计算前 2 个值 (0.12472963, 1.15341289) 的平均值,并获得与以下 2 个值 (-1.09662288 -0.73241639) 平均值的绝对差,然后沿着向量向下工作。
在这种情况下,我可以很容易地使用以下等式:
abs(mean(vec[1:2])-mean(vec[3:4]))
并将每个数字递增 1,以便手动向下工作,直到向量结束。我会得到以下向量。
[1] 1.553591 0.3624149 0.8784722 0.497176 0.005337574
然而,我希望有一个自动化的例程,使我能够在长向量上执行此操作并更改用于计算均值的值的数量。
在我看来应该比较简单,但是不知道从哪里开始。
【问题讨论】:
-
您可以从
zoo包中查看rollapply()。