可变移动平均函数

时间:2017-12-12 14:15:31

标签: r

我需要你对R中的函数的帮助。我不知道如何编程:输入应该是包含所有数据的数据框,数据框中的列名称,其中指定了检查的数据,以及数值表明平均值的可变性。数值是通过应该形成平均值的值来确定。参见例如: 迈德特:

A  B  C  D
A1 B1 2  D1
A2 B2 3  D2
A3 B3 -1 D3
A4 B4 0  D4
A5 B5 1  D5

这里重要的列是C,这里的数值可以是2到5

输出应该是一个只有手段

的数据框

例如:
输入:MyData,C,2 输出:

C
(2+3)/2
(3-1)/2
(-1+0)/2
(0+1)/2

或例如:
输入:MyData,C,4 输出:

C
(2+3-1+0)/4
(3-1+0+1)/4

当然,只有法案的结果应该被看到,为了便于理解,我已经写下了这条道路 我希望有一个人可以帮助我。谢谢!

2 个答案:

答案 0 :(得分:1)

如果您愿意使用data.table:

df = as.data.frame(runif(10))
names(df) = 'c'
setDT(df)

df[ , output := (c + shift(c))/2]

答案 1 :(得分:1)

看看RcppRoll包。

library(RcppRoll)
roll_mean(df$C, 2)
roll_mean(df$C, 4)