使用dplyr函数时为什么cumsum计算不正确

时间:2017-04-12 08:35:25

标签: r dplyr

我有一个数据表,如下所示:

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

0 个答案:

没有答案