我想获取滚动方式的过去1到10个事件按列分组的多列。我也希望它非常快,比如在dplyr或data.table中,因为我想在1,000,000 x 1,000的数据框上运行它。R:获取多个滚动方式的多个列滞后
开始DF
data.table(a = c("bill", "bob", "bill", "bob", "bill", "bob"),
b = c(1,2,1,1,3,2),
c = c(2,3,9,1,4,1),
d = c(4,5,1,7,3,4))
1: bill 1 2 4
2: bob 2 3 5
3: bill 1 9 1
4: bob 1 1 7
5: bill 3 4 3
6: bob 2 1 4
所需DF
我想通过柱带有1至10中为每一列的窗口分组仅b和c的滚动平均滞后1行。
a b c d b_roll1 c_roll1 b_roll2 c_roll2 b_roll3 c_roll3
1: bill 1 2 4 NA NA NA NA NA NA
2: bob 2 3 5 NA NA NA NA NA NA
3: bill 1 9 1 1 2 1 2 1 2
4: bob 1 1 7 2 3 2 3 2 3
5: bill 3 4 3 1 9 1 5.5 1 5.5
6: bob 2 1 4 1 1 1 2 1 2
我不知道我理解你。你正在谈论滞后,但滚动手段通常是根据窗口大小,向左,向右或居中计算的。例如,对于[2,3,4],左侧2滚动平均值是[NA,2.5,3.5]。然而你的例子显示了不同的结果。没有一个滚动的意思,这只是价值本身...你可以更具体地说你在哪里之后? – Edwin
你是对的爱德华。我编辑了所需的数据帧。 – user6452857