我想獲取滾動方式的過去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