【发布时间】:2015-10-28 14:40:37
【问题描述】:
我有一个如下所示的 data.table:
DT <- data.table(A=1:20, B=1:20*10, C=1:20*100)
DT
A B C
1: 1 10 100
2: 2 20 200
3: 3 30 300
4: 4 40 400
5: 5 50 500
...
20: 20 200 2000
我希望能够计算一个新列“G”,它的第一个值作为 B 列中前 20 行的平均值作为第一个值,然后我想使用 G 列的第一行来帮助计算G的下一行值。
假设B列前20行的平均值为105,G中下一行的计算公式为:DT$G[2] = DT$G[1]*2,下一行又是DT$G[3]=DT$G[2]*2。这意味着不应在下一行中再次使用第一个值,依此类推。
A B C G
1: 1 10 100 105
2: 2 20 200 210
3: 3 30 300 420
4: 4 40 400 840
5: 5 50 500 1680
...
20: 20 200 2000 55050240
对此有什么想法吗?
【问题讨论】:
-
你有什么想法?
-
DT[, G := mean(B[1:20]) * 2^(0:19)]
标签: r data.table lag