我有一个具有2列的数据框,如下所示:
> data.frame(x=1:10, y=c(0,0,0,1,1,0,0,1,0,1))
x y
1 1 0
2 2 0
3 3 0
4 4 1
5 5 1
6 6 0
7 7 0
8 8 1
9 9 0
10 10 1
并且我想获取第x
(cumsum(df$x)
)列的累加总和,但应1
在column中出现a之后重新设置总和y
。这是我要寻找的结果:
1
3
6
10
5
6
13
21
9
19
如何在R中实现呢?
您可以使用ave
以下方法实现:
ave(d$x,c(0,cumsum(d$y[-nrow(d)])),FUN=cumsum)
# [1] 1 3 6 10 5 6 13 21 9 19
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句