dplyr

2015-07-02 13 views
5
verschachtelte group_by zusammenfassen über

ich einen Datenrahmen wie diese:dplyr

 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 

Ich mag würde die Summe der Menge für jeden einzelnen Tag in einer Kategorie zu berechnen. Meine Versuche (siehe Code) reichen nicht aus.

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

Falsche Ausgabe -> hier die Summe über jede Gruppe berechnet wird

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)) 

Falsche Ausgabe -> hier die Summe über jeden Tag berechnet wird, aber die Kategorien nicht

 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 
betrachtet

Bis jetzt ist es mir nicht gelungen, beide Aussagen zu kombinieren. Wie kann ich beide group_by-Anweisungen verschachteln, um die Summe des Betrags für jeden einzelnen Tag in jeder Kategorie zu berechnen?

Schachteln der Gruppen wie:

summarize (group_by (group_by (Testdaten, Datum), Kategorie), Summe (Betrag), Daten = toString (Datum))

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 

als nicht funktioniert beabsichtigt.

Ich habe von dplyr - summarise weighted datasummarise_each gehört, konnte es aber nicht funktionieren:

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

danken Ihnen sehr viel Ihr Kommentar ist die Lösung –

Antwort

5

Sie versuchen

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