【问题标题】:R: aggregate daily to weekly data by groupR:按组聚合每日到每周的数据
【发布时间】:2021-08-17 23:08:23
【问题描述】:

我有一个包含每个国家/地区每日数据的数据集。我现在想通过采用每周平均值将其聚合为每周数据。我找到了几种解决方案。但是,我还没有找到按组(或在我的情况下按国家/地区)执行此操作的资源。

这是我的数据的样子:

  Country       Date StringencyIndex
1   Aruba 2020-01-01               0
2   Aruba 2020-01-02               0
3   Aruba 2020-01-03               0
4   Aruba 2020-01-04               0
5   Aruba 2020-01-05               0
6   Aruba 2020-01-06               0

目标是按国家/地区获得 StringencyIndex 的每周值。

【问题讨论】:

    标签: r time-series aggregate


    【解决方案1】:

    您可以按多列分组。

    library(dplyr)
    
    df %>%
      group_by(Country, week = lubridate::week(Date)) %>%
      summarise(StringencyIndex = mean(StringencyIndex))
    

    基础 R aggregate -

    aggregate(StringencyIndex~Country + week, transform(df, week = format(Date, '%V')), mean)
    

    【讨论】:

      【解决方案2】:

      使用data.table

      library(data.table)
      setDT(df)[, .(StringencyIndex = mean(StringencyIndex, na.rm = TRUE)),
                .(Country, week = week(Date))]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-08
        • 1970-01-01
        • 2013-05-02
        相关资源
        最近更新 更多