R:按组汇总每日到每周的数据
R: aggregate daily to weekly data by group
我有一个包含每个国家/地区每日数据的数据集。我现在想通过取每周平均值将其汇总为每周数据。我找到了几种解决方案。但是,我还没有找到按组(或按国家/地区)执行此操作的资源。
这是我的数据:
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 值。
您可以按多列分组。
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)
使用data.table
library(data.table)
setDT(df)[, .(StringencyIndex = mean(StringencyIndex, na.rm = TRUE)),
.(Country, week = week(Date))]
我有一个包含每个国家/地区每日数据的数据集。我现在想通过取每周平均值将其汇总为每周数据。我找到了几种解决方案。但是,我还没有找到按组(或按国家/地区)执行此操作的资源。
这是我的数据:
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 值。
您可以按多列分组。
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)
使用data.table
library(data.table)
setDT(df)[, .(StringencyIndex = mean(StringencyIndex, na.rm = TRUE)),
.(Country, week = week(Date))]