使用R代码移动平均线

时间:2014-09-20 18:03:32

标签: r

我需要有R代码的第一部分是关于:

  

写一个执行以下操作的R函数:给定N的序列xN =(x1; x2; ...; xN)       观察,该函数返回移动平均线的向量,其中计算每个平均值       连续观察k次。将函数命名为ma,其参数为       向量xN和k。

到目前为止我所拥有的:

x <-vector(length=n)

ma <- function(x,k){
x0 <- x[1:(length(x)-k)]
x1 <- x[(1+k):length(x)]
cor(x0, x1)
}

我很确定我犯了错误......

1 个答案:

答案 0 :(得分:3)

有很多方法可以计算移动平均线。

在基础r中,这可以工作

filter(x, rep(1/2,2)) #this calculates moving average of 2 numbers in a sequence
filter(x, rep(1/3,3))  #this calculates moving average of 3 numbers in a sequence

连续k次观察

filter(x, rep(1/k,k))

e.g。

x <- c(3,5,7,3,4,2,6,4,7,2,1,9, 1, 10, 1,12)
filter(x, rep(1/2,2))
# [1] 4.0 6.0 5.0 3.5 3.0 4.0 5.0 5.5 4.5 1.5 5.0 5.0 5.5 5.5 6.5  NA

您还应该查看以下软件包:zooTTR软件包以获取更多选项

正如一个简单的例子,TTR中的函数runMean非常简单

runMean(x,2) #gives rolling mean of every 2 consecutive observations
runMean(x,k) #gives rolling mean of every k consecutive observations