【问题标题】:R: Merge multiple irregular time series with zoo by averagingR:通过平均将多个不规则时间序列与动物园合并
【发布时间】:2013-02-26 02:06:54
【问题描述】:
library(zoo)
a <- read.zoo(data.frame(t = c(1, 2, 3, 4, 5, 6), v = c(20, 20.5, 21, 20.7, 22, 19.6)))
b <- read.zoo(data.frame(t = c(1, 1.3, 2.4, 2.7, 5.3, 6, 6.9), v = c(15, 15.2, 11, 20.3, 12, 12.6, 20)))

merge(a, b) 可以:

       a    b
1   20.0 15.0
1.3   NA 15.2
2   20.5   NA
2.4   NA 11.0
2.7   NA 20.3
3   21.0   NA
4   20.7   NA
5   22.0   NA
5.3   NA 12.0
6   19.6 12.6
6.9   NA 20.0

我需要的是 a 和 b 的平均值,假设列 v 表示在连续时间样本之间保持不变的值:

       a    b     **desired output**
1   20.0 15.0         17.50
1.3   NA 15.2         17.60
2   20.5   NA         17.85
2.4   NA 11.0         15.75
2.7   NA 20.3         20.40
3   21.0   NA         20.65
4   20.7   NA         20.50
5   22.0   NA         21.15
5.3   NA 12.0         17.00
6   19.6 12.6         16.10
6.9   NA 20.0         19.80

有什么想法吗?

【问题讨论】:

    标签: r time-series zoo


    【解决方案1】:
    x <- merge(a, b)
    rowMeans(na.locf(x))
    [1] 17.50 17.60 17.85 15.75 20.40 20.65 20.50 21.15 17.00 16.10 19.80
    

    【讨论】:

      猜你喜欢
      • 2015-09-27
      • 2012-02-27
      • 2011-10-28
      • 1970-01-01
      • 2017-10-14
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多