【问题标题】:xts object: mean over a specific monthxts 对象:特定月份的平均值
【发布时间】:2018-08-14 10:30:16
【问题描述】:

我有以下 xts 对象。

x <- sample (19:22, 121, replace=T)
time <- seq.Date(as.Date("2000-01-01"), length=121, by="months")

2001-02-01   21
2001-03-01   19
2001-04-01   22
2001-05-01   19
2001-06-01   19
2001-07-01   20
...
...
...
2009-11-01   21
2009-12-01   20

我想编写一个函数或代码,返回每月的特定平均值。 (所有 1 月的平均值,所有 2 月的平均值,依此类推)

有没有办法使用像 apply.monthly 这样的 xts 函数来做到这一点?

最后,我的目标是编写一个函数,将每个月的数据点以其月度特定平均值为中心

【问题讨论】:

    标签: time time-series xts


    【解决方案1】:

    你的意思是这样的吗?

    library(dplyr)
    
    #sample data    
    set.seed(123)
    df <- data.frame(date = seq.Date(as.Date("2000-01-01"), length=121, by="months"),
                     value = sample(19:22, 121, replace=T))
    
    final_df <- df %>%
      group_by(months(date)) %>%
      summarize(value_mean = mean(value))
    final_df
    

    输出为:

       `months(date)` value_mean
     1          April   20.60000
     2         August   20.80000
     3       December   20.50000
     4       February   20.10000
     5        January   20.72727
     6           July   20.60000
     7           June   19.80000
     8          March   20.30000
     9            May   20.60000
    10       November   20.80000
    11        October   21.00000
    12      September   20.40000
    

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 1970-01-01
      • 2011-09-25
      • 2019-03-19
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多