根据data.table中其他列中的计算值计算列中的滚动总和

问题描述 投票:1回答:1

我试图从另一列的计算值计算列中的值。

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
r dataframe data.table
1个回答
2
投票

您可以使用

DT[, Z := cumsum(z2) + z1[1], by= X]
© www.soinside.com 2019 - 2024. All rights reserved.