我有一个带有列的R数据集:
- 第一个月
country_code
version
money
变量money
是数值型的。变量version
和country_code
是分类型的。date
、country_code
和version
的每个组合都定义了一个唯一的观测值,money
的值将被测量。
我想对变量version
和country_code
进行分组,并计算数据集中的3个新变量,它们是:
- money_week:对于每个观察,此变量存储前7天沿着的
money
的聚合。 money_15
:对于每个观测,此变量存储沿着过去15天的money
聚合money_total
:对于每个观察,此变量存储money
到当前日期的聚合。
country_code
和version
的不同组合可能具有不同的开始和结束日期,并且也可能缺少日期。
示例
data = tibble(
date = seq(as.Date('2022-01-01'), as.Date('2022-01-13'), by=1),
money = 1:13)
data = data[-c(2,3,4,10,11),]
# [Some computations for adding the expected new variables]
# A tibble: 10 × 2
date money money_week
2022-01-01 1 1
2022-01-05 5 6
2022-01-06 6 12
2022-01-07 7 19
2022-01-08 8 26
2022-01-09 9 35
2022-01-12 12 42
2022-01-13 13 49
字符串
注意,每个观测值不只是前7个观测值的总和,而是前7天的总和。例如,日期2022-01-08
的观测值是日期2022-01-08
,2022-01-07
,2022-01-06
,2022-01-05
的观测值的总和,它将包括观测值2022-01-04
,2022-01-03
,2022-01-02
但最后一个不见了。
2条答案
按热度按时间u5rb5r591#
您可以使用重叠联接来合并从日期到日期间隔(分别为7天或15天)的值:
字符串
创建于2023-11-12使用reprex v2.0.2
dkqlctbz2#
您可以使用
date
变量作为滑动窗口函数的索引。字符串
更多测试数据展示
money_15
型