在R中,如何计算在要计算的行之前的定义时间段的cumsum?如果可能的话,首选dplyr。
例如,如果周期为10天,则函数将实现cum_rolling10:
date value cumsum cum_rolling10
1/01/2000 9 9 9
2/01/2000 1 10 10
5/01/2000 9 19 19
6/01/2000 3 22 22
7/01/2000 4 26 26
8/01/2000 3 29 29
13/01/2000 10 39 29
14/01/2000 9 48 38
18/01/2000 2 50 21
19/01/2000 9 59 30
21/01/2000 8 67 38
25/01/2000 5 72 24
26/01/2000 1 73 25
30/01/2000 6 79 20
31/01/2000 6 85 18
字符串
4条答案
按热度按时间gcmastyq1#
使用
dplyr
、tidyr
、lubridate
和zoo
的解决方案。字符串
资料
型
uinbv5nw2#
我建议使用runner包,用于计算滚动/运行窗口上的函数。你可以通过使用
sum_run
来实现这一点-这里有一个liner:字符串
好好享受吧!
kjthegm63#
这个解决方案将避免内存开销,并且迁移到
sparklyr
将很容易。滞后= 7
字符串
mwyxok5s4#
使用slider中的
slide_index_sum()
,它的API与purrr相同。字符串