【发布时间】:2019-08-01 19:42:10
【问题描述】:
我有这个data.frame:
a b
[1,] 1 0
[2,] 2 0
[3,] 3 0
[4,] 4 0
[5,] 5 0
[6,] 6 1
[7,] 7 2
[8,] 8 3
[9,] 9 4
[10,] 10 5
我想在column a 上应用cumsum,仅当column b 上的对应值不为0 时。
我在下面尝试了这个,但它不包括 cumsum 的起始条件:
df_cumsum <- cbind(c(1:10), c(0,0,0,0,0,1,2,3,4,5),
as.data.frame(ave(A[,1], A[,2] != 0, FUN=cumsum)))
不幸的是,我在整个专栏中都获得了cumsum:
a b c
1 1 0 1
2 2 0 3
3 3 0 6
4 4 0 10
5 5 0 15
6 6 1 6
7 7 2 13
8 8 3 21
9 9 4 30
10 10 5 40
我想获得:
a b c
1 1 0 0
2 2 0 0
3 3 0 0
4 4 0 0
5 5 0 0
6 6 1 6
7 7 2 13
8 8 3 21
9 9 4 30
10 10 5 40
感谢您的帮助!
【问题讨论】:
标签: r dataframe cumsum multiple-conditions