【问题标题】:R calculate weighted averages for time series with missing valuesR计算具有缺失值的时间序列的加权平均值
【发布时间】:2014-08-23 08:51:54
【问题描述】:

我有 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 是相同的。我做错了什么?

【问题讨论】:

  • Dropbox 链接不再起作用。您能否提供一个示例,以便您的问题易于理解?
  • 感谢您告诉我,该链接现在又可以使用了。

标签: r apply weighted-average


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2020-12-07
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多