Читать книгу R für Data Science - Hadley Wickham - Страница 64
Gruppierte Zusammenfassungen mit summarize()
ОглавлениеDas letzte Schlüsselverb ist summarize(). Es lässt einen Dataframe zu einer einzigen Zeile zusammenschrumpfen:
summarize(flights, delay = mean(dep_delay, na.rm = TRUE))
#> # A tibble: 1 × 1
#> delay
#> <dbl>
#> 1 12.6
(Auf den Ausdruck na.rm = TRUE gehen wir in Kürze ein.)
Die Funktion summarize() ist nicht allzu nützlich, sofern man sie nicht mit group_by() paart. Damit wird die Analyseeinheit vom vollständigen Datenset zu einzelnen Gruppen geändert. Wenn Sie dann die dplyr-Verben auf einen gruppierten Dataframe anwenden, werden sie automatisch »gruppenweise« angewendet. Nehmen wir beispielsweise genau denselben Code und wenden ihn auf einen Dataframe an, der nach dem Datum gruppiert ist, erhalten wir die durchschnittliche Verspätung pro Datum:
by_day <- group_by(flights, year, month, day)
summarize(by_day, delay = mean(dep_delay, na.rm = TRUE))
#> Source: local data frame [365 x 4]
#> Groups: year, month [?]
#>
#> year month day delay
#> <int> <int> <int> <dbl>
#> 1 2013 1 1 11.55
#> 2 2013 1 2 13.86
#> 3 2013 1 3 10.99
#> 4 2013 1 4 8.95
#> 5 2013 1 5 5.73
#> 6 2013 1 6 7.15
#> # ... with 359 more rows
Die Funktionen group_by() und summarize() bilden gemeinsam eines der Tools, die Sie am häufigsten einsetzen, wenn Sie mit dplyr arbeiten: gruppierte Zusammenfassungen. Doch bevor wir dieses Thema vertiefen, müssen wir ein leistungsfähiges neues Konzept einführen: die Pipe.