Rollsum与周数

时间:2016-01-11 20:29:07

标签: r data.table dplyr plyr zoo

这个问题来自我之前发布的前一篇:

rollsum with fixed dates

我不能让给定的解决方案起作用。我有一个大型数据集,有趣的列是:

id = c(145658, 145658, 145658, 145658, 145658, 145658, 145658, 145658, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)

week_number = c(24, 35, 44, 71, 82, 117, 127, 142, 4, 15, 20, 24, 30, 36, 42, 46, 59, 67, 68, 71, 75, 78, 79, 86, 93, 96)

amount = c(51.9, 51.9, 51.9, 51.9, 51.9, 103.8, 51.9, 51.9, 67.9, 67.9, 67.9, 67.9, 67.9, 67.9, 67.9, 67.9, 67.9, 67.9, 101.0, 168.9, 101.0, 101.0, 135.8, 168.9, 168.9, 67.9)

df = data.frame(id = id, week_number = week_number, amount = amount)

实际上,我有成千上万的id,每个都有不同的周数。我想计算每个ID的过去几周(包括当前周)的“金额”列中的rollum。

一个极端的例子是过去100周。结果如下:

past_100wk = c(NA, NA, NA, NA, NA, 363.3, 363.3, 363.8, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)

同样,这是一个极端情况,但它显示当row_number窗口中不包含行值时,结果应该给出NA(或-1)(在这种情况下为100周)。

谢谢!

0 个答案:

没有答案