使用ddply使用多个变量的cumsum

时间:2018-02-01 22:57:31

标签: plyr cumsum

我试图使用ddply获取多个变量的cumsum,但它不起作用。

我正在使用此代码:

ddply(.data=Summaryday, .variables=('DaysToClose_'),.fun=transform,

      cumsumPosit=cumsum(PositCount),

      cumsumNegat=cumsum(NegatCount))

但结果不正确:

 DaysToClose_ PositCount NegatCount cumsumPosit cumsumNegat
1             1       7340      27256        7340       27256
2             2       2243       7597        2243        7597
3             3       1526       4545        1526        4545
4             4       1315       3756        1315        3756
5             5       1142       3320        1142        3320
6             6       1216       3118        1216        3118
7             7       1252       3324        1252        3324
8             8       1180       3077        1180        3077
9             9        975       2053         975        2053
10           10        684       1429         684        1429
11           11        613       1244         613        1244
12           12        596       1199         596        1199
13           13        542       1218         542        1218
14           14        711       1434         711        1434
15           15        645       1333         645        1333
16           16        577        899         577         899
17           17        373        667         373         667
18           18        369        656         369         656
19           19        340        624         340         624

如果有人可以帮助我,我很感激。

1 个答案:

答案 0 :(得分:0)

我不确定你为什么要在这里使用ddply。您不能真正按DaysToClose进行子集,因为每一行都是唯一的子集,因此您始终可以得到单个值的cumsum。也许您想要使用mutate代替

library(tidyverse)
data %>% mutate(cumsumPosit = cumsum(PositCount),
               cumsumNegat = cumsum(NegatCount))