dplyr通过嵌套的group_by对数据进行分组汇总。

8

I have a data frame like this:

       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语句以计算每个类别中每一天的金额总和?

将分组嵌套如下:

summarise(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 datasummarise_each,但是我无法让它正常工作:

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

非常感谢你的评论,它就是解决方案。 - Georg Heiler
1个回答

8
您可以尝试。
 testData %>% 
       group_by(Date,Category) %>% 
       summarise(Amount= sum(Amount))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接