表I:
DT <- data.frame(A=1:5*10, B=1:5*-1)
DT
A B
1 10 -1
2 20 -2
3 30 -3
4 40 -4
5 50 -5
表I我想:
C = A + B + C(N-1)
A B C
1 10 -1 9
2 20 -2 27
3 30 -3 54
4 40 -4 90
5 50 -5 135
我在下面引用了链接并尝试申请但失败了:
Use a value from the previous row in an R data.table calculation
DT$C<-DT$A+DT$B+shift(DT$C)
答案 0 :(得分:2)
如果我没有遗漏某些东西,这将解决问题:
DT <- data.table(A=1:5*10, B=1:5*-1)
DT[, C := cumsum(A + B)]
答案 1 :(得分:0)
使用dplyr
library(dplyr)
DT %>%
mutate(C= cumsum(A+B))
# A B C
#1 10 -1 9
#2 20 -2 27
#3 30 -3 54
#4 40 -4 90
#5 50 -5 135