R计算具有缺失值的时间序列的加权平均值

时间:2014-08-23 08:51:55

标签: r apply weighted-average

我有3个缺失值的时间序列(T1,T2和T3)。我将它们合并到一个名为x的动物园对象中 (您可以从这里下载:https://www.dropbox.com/s/1xk4qn9hthibqpu/x.rda?dl=0)。

我想使用2组权重(w1和w2)计算加权平均值。 这是我的工作:

library(zoo)
load("x.rda")

w1 <- c(0.38,0.04,0.58)
w2 <- c(0.53,0,0.47)

average1 <- zoo(apply(x, 1, function(rw,w) weighted.mean(rw, weights=w, na.rm=TRUE), w1 ), order.by=index(x) )
average2 <- zoo(apply(x, 1, function(rw,w) weighted.mean(rw, weights=w, na.rm=TRUE), w2 ), order.by=index(x) )

plot(average1-average2)

但是average1和average2是相同的。我做错了什么?

1 个答案:

答案 0 :(得分:1)

请参阅?weighted.mean。参数的名称为w,而不是weights

avg1 <- avg2 <- x[, 1]
avg1[] <- apply(x, 1, weighted.mean, w = w1, na.rm = TRUE)
avg2[] <- apply(x, 1, weighted.mean, w = w2, na.rm = TRUE)