我有一个数据表,如下所示:
Days
0
20
0
657
80
0
151
34
119
63
30
32
57
0
156
208
369
122
0
153
57
279
208
427
0
462
63
0
16
158
我想在R中使用dplyr计算CumSum,这就是我正在使用的:
df <- df %>% mutate(CummDays = ifelse(Days==0, 0, cumsum(Days)))
我得到的结果对于几行有效,然后出现错误,如下表所示。在第14行之后,应该重置cumsum以从ZERO开始计数,但事实并非如此。 :
Days CummDays
0 0
20 20
0 0
657 657
80 737
0 0
151 151
34 185
119 304
63 367
30 397
32 429
57 486
0 0
156 642 <- Here is the error
208 850
369 1219
122 1341
0 0
153 153
57 210
279 489
208 697
427 1124
0 0
462 462
63 525
0 0
16 541 <- Here is another error
158 699
我想要的应该是这样的,如下所示,我不确定为什么上述功能没有正确计算:
Days CummDays
0 0
20 20
0 0
657 657
80 737
0 0
151 151
34 185
119 304
63 367
30 397
32 429
57 486
0 0
156 156
208 364
369 733
122 855
0 0
153 153
57 210
279 489
208 697
427 1124
0 0
462 462
63 525
0 0
16 16
158 174