R:按组汇总每日到每周的数据

时间:2021-05-30 10:46:34

标签: r time-series aggregate

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

这是我的数据的样子:

  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 的每周值。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

使用 data.table

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