重复或循环参数

标签 r vector repeat

我对 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

然而,我想要的是一个自动化的例程,它使我能够在长向量上做到这一点,并改变从中计算平均值的值的数量。

在我看来应该比较简单,但我不知道从哪里开始。

最佳答案

使用 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

关于重复或循环参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26513122/

相关文章:

c - 如何使用 C union 来使多个命名变量和另一个更大的命名变量相等?

html - 我怎样才能重复图像翻转并在我的网站下方对齐多个图像?

Python - 重复给定函数 n 次

c - 在 C 中重复程序功能失败,scanf 相关?

r - 如何在多面条形图中添加百分比值(qplot/ggplot/R)

r - <unescaped bksl>S4method 记录替换函数时出错

jsp - 矢量: References to generic type Vector<E> should be parameterized

C++:检查 vector 中的元素是否大于另一个具有相同索引的元素的有效方法?

r - JAGS,rjags : "Error in file(modfile, "rt") : cannot open the connection"

R Shiny 的 RODBC 连接失败