R-Zertifizierung: Data Manipulation with R Track (DataCamp)

Dritter „Skill Track“ abgeschlossen: Datenaufbereitung mit R (Data Manipulation with R). Er umfasst vier Kurse. Zwei fehlten mir zuletzt noch: Exploratory Data Analysis in R: Case Study (Explorative Datenanalyse: Fallbeispiel) sowie Joining Data in R with dplyr. Darin ging es ausführlich um verschiedene Möglichkeiten, Daten zusammenzuführen bzw. anhand anderer Daten zu filtern.

R Skill Track: Data manipulation with R
Der „Skill Track“ Data manipulation with R besteht aus vier Kursen: Data Manipulation in R with dplyr, Exploratory Data Analysis in R: Case Study, Joining Data in R with dplyr sowie Data Analysis in R, the data.table way

Wer schon seit längerem R nutzt oder Lösungen für bestimmte Probleme googelt, verwendet evtl. Funktionen der Basis-Installation oder ältere R-Pakete wie Hadley Wickham’s plyr. Meines Erachtens lohnt sich der Aufwand, sich mit neueren Paketen wie dplyr vertraut zu machen. (Ähnliches gilt für reshape -> reshape2 -> tidyr. Ich empfehle das letztgenannte, neueste Paket, mit dem man z. B. sehr einfach Daten für ggplot2 aufbereiten kann.)

Stärken von dplyr

dplyr verwendet piping, wie es vom magrittr-Paket eingeführt wurde. Dadurch kann im Gegensatz zu manchen Skripten in base-R sehr übersichtlicher Code geschrieben werden, etwa so:

nAwards %>% 
 # Filter to just the players in nominated 
 semi_join(nominated, by = "playerID") %>% 
 # Filter to players NOT in inducted 
anti_join(inducted, by = "playerID") %>% # Calculate the mean number of awards per player summarize(avg_n = mean(n, na.rm = TRUE))

Auf diese Weise kann man elegant verzichten: einerseits auf geschachtelte Klammer-Ausdrücke, andererseits auf das Zwischenspeichern in temporären Vektoren. Das Ergebnis jedes Schritts wird mit dem pipe operator %>% einfach an die nächste Operation weitergegeben, ohne die Arbeitsumgebung mit Zwischenergebnissen vollzustopfen. Kommentiert man die einzelnen Schritte noch, dann haben auch andere gute Chancen, den Code zu verstehen.

dplyr-Funktionen können sowohl auf Daten im Arbeitsspeicher als auch auf Datenbankverbindungen angewendet werden. So kann man bei R-Code bleiben und muss nicht R-Code mit SQL-Abfragen mischen. dplyr „übersetzt“ die R-Befehle bei Bedarf im Hintergrund in SQL.

Zudem ist dplyr deutlich schneller als plyr.

Sie möchten eine systematische Einführung in dplyr-Funktionen? Gern erstelle ich ein Angebot für einen Workshop.




Freue mich über Kommentare!