ve <- c(17, -9, 9, -17, 17, -17, 11, -9, 16, -18, 17, 0, 0, -18, 17, 0, 0, -17, 14, -14, 17, -2, 0, -15, 9, -9, 17, -16, 16, -17, 17, -17, 17, -17, 17, -17, 17, -8, 7, -16, 17, -14, 14, -10, 10, -16, 16, -10, 10, -12, 12, -11, 11, -17, 17, -17, 17, -9, 8, -17, 17, -17, 17, -16, 16, -17, 17, -8, 8, -9, 9, -17, 17, -17, 17, -13, 13, -10, 7, -10, 13, -16, 17, -13, 13, -13, 13, -9, 8, -17, 17, -10, 9, -17, 17, -17, 17, -16, 16, -10, 10, -15, 15, -14, 14, -14, 15, -13, 13, -9, 9, -13, 13, -12, 12, -10, 9, -11, 12, -8, 7, -10, 10, -9, 9, -11, 11, -9, 9, -7, 7, -12, 11, -11, 12, -11, 11, -14, 14, -13, 13, -10, 10, -13, 13, -17, 17, -7, 7, -17, 17, -17, 17, -14, 14, NA)
df <- data.frame(ve = ve, calc = 0)
我需要计算在列计算cumsum,但它需要重置为零,每当它的值变为负值重新开始.. 我试过几个条件,但它的复位cumsum没有真正的工作...如果值变为负r中
此外,是否有可能在dplyr中实现这一点?我是dplyr的新手,每当需要使用附属值时,都会觉得有些困难。
谢谢你的帮助!
如果你看到排14和15应该去当..
ve calc
1 17 17
2 -9 8
3 9 17
4 -17 0
5 17 17
6 -17 0
7 11 11
8 -9 2
9 16 18
10 -18 0
11 17 17
12 0 17
13 0 17
14 -18 0
15 17 17
,与正常cumsum这将是-1和16 ,但我希望它重置为0,而不是-1继续cumsum,因此未来将是17
你想省略'NAs'? – AK88
哦,是的,需要省略NA请 – user5813583
您能否提供示例输出?我不确定cumsum在达到负值时是如何工作的(例如,从下一个正值开始,包括cumsum中的负值)。 – Marius