根据data.table中其他列中的计算值计算列中的滚动总和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据data.table中其他列中的计算值计算列中的滚动总和相关的知识,希望对你有一定的参考价值。
我试图从另一列的计算值计算列中的值。
DT <- data.table(X = c("a","a","a", "b","b","b", "c","c","c"),
Y = rep(c(1,2,3),3),
z1 = c(10, 11,12),
z2 = c(1,2,3))
这里在DT中,我想计算一个新列Z,它是每个X的第一行的z1和z2的和。下一行计算应该从先前计算的所有行“a”的Z +当前行z2完成。类似地,对于“b”,“c”。 我确实试过“for”循环,但没有成功。最终结果如下所示。
X Y z1 z2 Z
a 1 10 1 11
a 2 11 1 12
a 3 12 1 13
b 1 10 2 12
b 2 11 2 14
b 3 12 2 16
c 1 10 3 13
c 2 11 3 16
c 3 12 3 19
答案
您可以使用
DT[, Z := cumsum(z2) + z1[1], by= X]
以上是关于根据data.table中其他列中的计算值计算列中的滚动总和的主要内容,如果未能解决你的问题,请参考以下文章