2015-07-02 13 views
5

Mam ramki danych tak:dplyr podsumować ponad zagnieżdżony group_by

 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 

chciałbym obliczyć sumę wysokości dla każdego jednego dnia w kategorii. Moje próby (patrz kod) są niewystarczające.

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

Niewłaściwy wyjście -> tutaj suma obliczana jest na każdej grupy

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

Niewłaściwy wyjście -> tutaj suma jest obliczana na każdy dzień, ale kategorie nie są uważane

 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 

Do tej pory nie udało mi się połączyć obu stwierdzeń. Jak zagnieździć obie instrukcje group_by, aby obliczyć sumę kwoty za każdy dzień w każdej kategorii?

Zagnieżdżanie grup jak:

przedstawiono podsumowanie (group_by (group_by (testdata, data), kategoria), suma (Amount), dat = toString (data))

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 

nie działa jak zamierzony.

Słyszałem dplyr - summarise weighted datasummarise_each ale nie mógł zmusić go do pracy:

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

dziękuję bardzo twój komentarz jest rozwiązaniem –

Odpowiedz

5

Można spróbować

testData %>% 
     group_by(Date,Category) %>% 
     summarise(Amount= sum(Amount)) 
Powiązane problemy