【发布时间】:2019-07-12 06:03:09
【问题描述】:
我正在尝试对过去 12 个月内的行求和。
df<- read.table(header=T, text='yyyymm amount
200809 261900
200810 149000
200908 120000
201104 81500
201107 30000
201112 75000
201306 56000
201310 98000
201311 40000
201402 95000
201408 28900
201505 33000
201511 65000
201601 78000
201610 50000
201701 50000
201711 81500')
例如,对于第一行(200809==2008 年 9 月),我没有任何过去 12 个月内的数据,因此我要创建的新变量 (sum_amt) 以 sum_amt=NA 结尾.对于第二行,我有一条记录在 200810 的过去 12 个月内(即在 200710 和 200809 之间),所以 sum_amt=261999。同样,对于第三行,我有两条记录在 200908 的 12 个月内,所以 sum_amt=410900 (261900 + 261900) 等等。
最终结果是:
yyyymm amount sum_amt
200809 261900 NA
200810 261900 261900
200908 120000 410900
201104 81500 NA
201107 30000 81500
201112 75000 111500
201306 56000 NA
201310 98000 56000
201311 40000 154000
201402 95000 194000
201408 28900 233000
201505 33000 28900
201511 65000 33000
201601 78000 98000
201610 50000 143000
201701 50000 128000
201711 81500 50000
谢谢你!
【问题讨论】:
-
一种方法是为缺失月份添加数量 = 0 的行,然后使用“rollapply”创建 sum_amt 列以获取移动总和。
标签: r datatable dplyr sum tidyverse