【发布时间】:2018-09-28 21:42:47
【问题描述】:
评论:
R: cumulative sum over rolling date range
Consecutive/Rolling sums in a vector in R
https://cran.r-project.org/web/packages/RcppRoll/RcppRoll.pdf
显然有几个选项可以在一系列列上使用 rollapply。
我有一个数据框,其中包含按月分组的客户数据,示例:
year_month customer_id revenue
2018-01-01 1821148 0.00
2018-01-01 142163579 0.00
2018-01-01 16295983 0.00
2018-02-01 1821148 86.57
2018-02-01 142163579 191.21
2018-02-01 16295983 0.00
2018-03-01 1821148 98.18
2018-03-01 142163579 47.61
2018-03-01 16295983 241.88
我的问题是,我如何才能仅对每个客户使用 rollapply(例如 RcppRoll::roll_sum() 或任何类似功能)?即使我按 customer_id 和 year_month 排序我的数据,rollapply 也不会知道返回,例如仅针对特定客户滚动 3 个月。
例如最后第三次观察是针对 3 月份的客户 1821148。在这种情况下,我想要这个特定客户在 1 月:3 月的 cumsum。
即使我按客户 ID 和 year_month 进行订购,如果客户的第一次观察结果是其他客户的,那么他们的前 3 行数据也会相加。
有没有办法对特定分组进行汇总,在这种情况下是 customer_id?
【问题讨论】:
-
您应该查看 dplyr 或 DT 包,这两个包都是专门设计用于以简洁的方式容纳这些类型的组感知操作方式。
标签: r