data.table分組我試圖跨越ň因素估計在data.table
一些參數。雖然我熟悉使用by
功能以某個因素執行操作,爲多個順序因素做這件事會導致一些問題。在多個連續的因素
作爲一個例子,與組簡化
df <- data.table(Group = c(rep("A", 2), rep("B", 3), rep("C", 2), rep("D", 4), "E", rep("F", 4)), Variable = round(rnorm(16), 2))
Group Variable
1: A 0.13
2: A 0.26
3: B -1.36
4: B -0.78
5: B -0.92
6: C 0.00
7: C -2.49
8: D -1.85
9: D 0.37
10: D -0.57
11: D 1.42
12: E -0.72
13: F -1.04
14: F 1.86
15: F 0.49
16: F 1.61
使用df[, mean(Variable), by = Group]
將給出每一組的平均值。但是,我想計算以前的和組的平均值。
我試過使用M[, zoo::rollapply(Variable, n, mean), by = Group]
,但是,因爲這些組使用固定的不同尺寸n將不起作用。
想要什麼功能類似於df[, mean(Variable), by = "This Group and previous n Groups]
。
我想實現(爲ň = 3的情況)的輸出會看起來像
Group Variable
1: A NA
2: A NA
3: B NA
4: B NA
5: B NA
6: C 0.13
7: C 0.13
8: D -1.36
9: D -1.36
10: D -1.36
11: D -1.36
12: E 0
13: F -1.85
14: F -1.85
15: F -1.85
16: F -1.85
任何幫助,將不勝感激。
如果您正在尋找'rollapply'使用可變窗寬,你應該檢查這個問題:http://stackoverflow.com/questions/21368245/adaptive-rolling-window-function-top-performance-in-r請記住,目前最高的upvoted答案不回答這個問題。 – jangorecki
此鏈接有幫助。 –