首页 文章

dplyr总结了嵌套的group_by

提问于
浏览
5

我有这样的数据框:

Date Amount Category
1  02.07.15      1        1
2  02.07.15      2        1
3  02.07.15      3        1
4  02.07.15      4        2
5  03.07.15      5        2
6  04.07.15      6        3
7  05.07.15      7        3
8  06.07.15      8        3
9  07.07.15      9        4
10 08.07.15     10        5
11 09.07.15     11        6
12 10.07.15     12        4
13 11.07.15     13        4
14 12.07.15     14        5
15 13.07.15     15        5
16 14.07.15     16        6
17 15.07.15     17        6
18 16.07.15     18        5
19 17.07.15     19        4

我想计算一个类别中每一天的金额总和 . 我的尝试(见代码)都不够 .

summarise(group_by(testData, Category), sum(Amount))

输出错误 - >此处计算每组的总和

Category sum(Amount)
1        1           6
2        2           9
3        3          21
4        4          53
5        5          57
6        6          44

summarise(group_by(testData, Date), sum(Amount), categories = toString(Category))

错误的输出 - >这里的总和是在每天计算的,但不考虑类别

Date sum(Amount) categories
1  02.07.15          10 1, 1, 1, 2
2  03.07.15           5          2
3  04.07.15           6          3
4  05.07.15           7          3
5  06.07.15           8          3
6  07.07.15           9          4
7  08.07.15          10          5
8  09.07.15          11          6
9  10.07.15          12          4
10 11.07.15          13          4
11 12.07.15          14          5
12 13.07.15          15          5
13 14.07.15          16          6
14 15.07.15          17          6
15 16.07.15          18          5
16 17.07.15          19          4

到目前为止,我没有成功地结合这两个陈述 . 如何嵌套group_by语句以计算每个类别中每一天的金额总和?

嵌套组如:

总结(group_by(group_by(testData,Date),Category),sum(Amount),dates = toString(Date))

Category sum(Amount)                                  dates
1        1           6           02.07.15, 02.07.15, 02.07.15
2        2           9                     02.07.15, 03.07.15
3        3          21           04.07.15, 05.07.15, 06.07.15
4        4          53 07.07.15, 10.07.15, 11.07.15, 17.07.15
5        5          57 08.07.15, 12.07.15, 13.07.15, 16.07.15
6        6          44           09.07.15, 14.07.15, 15.07.15

不按预期工作 .

我听说dplyr - summarise weighted data summarise_each 但无法让它工作:

summarise_each(testData, funs(Category))
Error could not find function Category

1 回答

  • 5

    你可以试试

    testData %>% 
           group_by(Date,Category) %>% 
           summarise(Amount= sum(Amount))
    

相关问题