根据data.table

时间:2017-12-26 04:03:29

标签: r dataframe 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之和。下一行计算应该从先前计算的Z +当前行z2完成所有行的“a” ”。类似地,对于“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

1 个答案:

答案 0 :(得分:2)

您可以使用

DT[, Z := cumsum(z2) + z1[1], by= X]