Читать книгу R für Data Science - Hadley Wickham - Страница 69
Gruppieren nach mehreren Variablen
ОглавлениеWenn Sie nach mehreren Variablen gruppieren, zieht jede Zusammenfassung eine Gruppierungsebene ab. Dadurch ist es leicht, ein Datenset schrittweise zu verdichten:
daily <- group_by(flights, year, month, day)
(per_day <- summarize(daily, flights = n()))
#> Source: local data frame [365 x 4]
#> Groups: year, month [?]
#>
#> year month day flights
#> <int> <int> <int> <int>
#> 1 2013 1 1 842
#> 2 2013 1 2 943
#> 3 2013 1 3 914
#> 4 2013 1 4 915
#> 5 2013 1 5 720
#> 6 2013 1 6 832
#> # ... with 359 more rows
(per_month <- summarize(per_day, flights = sum(flights)))
#> Source: local data frame [12 x 3]
#> Groups: year [?]
#>
#> year month flights
#> <int> <int> <int>
#> 1 2013 1 27004
#> 2 2013 2 24951
#> 3 2013 3 28834
#> 4 2013 4 28330
#> 5 2013 5 28796
#> 6 2013 6 28243
#> # ... with 6 more rows
(per_year <- summarize(per_month, flights = sum(flights)))
#> # A tibble: 1 × 2
#> year flights
#> <int> <int>
#> 1 2013 336776
Seien Sie vorsichtig, wenn Sie Zusammenfassungen schrittweise verdichten: Für Summen und Anzahlen ist das in Ordnung, doch Sie müssen die Gewichtungen bei Mittelwerten und Varianzen berücksichtigen. Zudem ist es nicht möglich, genaue Berechnungen für Rang-basierte Statistikdaten wie den Median anzustellen. Mit anderen Worten ist die Summe von gruppierten Summen die Gesamtsumme, doch der Median von gruppierten Medianen ist nicht der Gesamtmedian.