R bei EBP
In diesem Blog haben wir schon verschiedentlich (teilweise) mit R erarbeitete Analysen und Visualisierungen gezeigt: etwa meine dreiteilige Serie über die Analyse von Velozähldaten mit R und Bence Tasnádys und Nadine Riesers unterhaltsamer dreiteiliger Bericht über die Eulertour mit dem Tram durch Zürich.
Bei EBP setzen wir R sehr vielfältig ein:
- für die Bereinigung und Umformung von Daten,
- für deskriptive und inferentielle Analysen und
- für agentenbasierte Modellierung beispielsweise im Bereich von Energiepreisen und noch für einiges mehr.
Vor einigen Wochen habe ich R zum Beispiel genutzt, um Gemeinden basierend auf circa einem dutzend Attributen zu clustern. Mit dem berechneten Ähnlichkeitsmass zwischen Gemeinden konnte dann auf einfache Weise eine Vorschlagsfunktion ähnlich wie bei Amazon gebaut werden. Also in der Art: „Sie interessieren sich für Gossau. Möchten Sie vielleicht Gossau mit Flawil, Uzwil, Wil, Herisau oder Rorschach vergleichen?“
Wofür R?
Wieso finde ich also R interessant und wieso nutze ich neben Python, SQL, ETL-Tools u.a. eben auch die Programmiersprache und die Software R? Hier ist meine Liste von Punkten. Für andere Leute können natürlich andere Vor- oder Nachteile ausschlaggebend sein (basically: YMMV):
- Ähnlich wie Python verfügt R mit dem Comprehensive R Archive Network (CRAN) über eine sehr grosse Menge von Libraries, welche diverse Funktionen abdecken, die in „Base R“ nicht oder nicht in dieser Güte abgedeckt sind. Zum Beispiel: Webscraping, Netzwerkmodellierung, explorative Datenanalyse, statische und interaktive Visualisierung, Verarbeitung von Geodaten, Datentransformationen etc. Was ich bei R manchmal als Nachteil empfinde (gerade gegenüber Python): es gibt nicht immer einen offensichtlich(st)en Weg, etwas zu tun. Die Fülle von Libraries ist eine Ursache hiervon.
- R kann diverse Datenformate lesen (und viele auch schreiben), auch Geodaten. Der Zugriff auf diverse Datenbanken, NetCDF-Files, tabellarische Daten (Excel, CSV, TSV, etc.), XML-Dateien oder JSON-Dateien ist ohne weiteres möglich.
- Datentransformationen sind eine Stärke von R: Ob Sie Daten umklassieren, säubern, Werte ersetzen, filtern, subsetten, bestichproben, gruppieren, aggregieren oder transponieren wollen – mit den mächtigen Datentransformationsfunktionen von zum Beispiel dplyr oder auch Base R ist fast alles möglich.
- einfache Berechnung beschreibender (deskriptiver) Statistiken wie Mittelwert, Median, Standardabweichung, Schiefe einer Verteilung, und vieles mehr, auch auf facettierten Daten
- Machine Learning-Techniken wie Regressionsanalyse, Klassifikationsanalysen, Clustering, multi-dimensional scaling (MDS-Analyse), u.v.m.
- diverse Möglichkeiten, aus Daten gängige Visualisierungen abzuleiten wie zum Beispiel Balkendiagramme, Liniendiagramme, Scatterplots, zum Beispiel mit der vermutlich beliebtesten Library für Visualisierungen, ggplot2. Aber auch Karten, zum Beispiel mit ggmap, und interaktive Visualisierungen, mit ggvis und shiny.
- Mit R kann man aber auch spezialisiertere Visualisierungen erstellen wie Starplots/Spiderplots, Boxplots, Violin Plots, Small Multiples oder Heatmaps.
Wieso R?
Wichtiger noch als diese Funktionen sind aus meiner Sicht aber Vorteile auf einer übergeordneten Ebene. Gerade für Datenaufbereitung, Datenanalyse und Datenvisualisierung geniesst R meiner Meinung nach einen gewichtigen Vorteil gegenüber anderen sehr viel häufiger genutzten Werkzeugen wie Tabellenkalkulationssoftware (Excel, Libre Office, etc.): In R sind alle Verarbeitungsschritte – vom Laden der Daten über allfällige Joins, Transformationen und Aggregationen, Pivot-Tabellen, Umklassierungen, Filterungen, Analyseschritte etc. bis hin zur Erstellung von Grafiken – geskriptet (in der Sprache R).
Die Vorteile dieser Vorgehensweise verglichen mit dem Arbeiten in Excel (auf die Art, wie die meisten Leute mit Excel arbeiten) sind:
- Transparenz: Ich kann alle Verarbeitungssschritte, welche zu einem Resultat geführt haben, in Form eines Skripts abspeichern. Ich und andere können auch sehr viel später zum Beispiel noch nachlesen, welche Transformationen auf die Daten angewendet worden sind. Zusätzlich zum Quellcode kann ich die Transparenz mit erläuternden Kommentaren unterstützen. Ich kann auch eine Versionskontrolle etwa mit GitHub durchführen – da das Skript eine Textdatei ist.
- Reduzierte Fehleranfälligkeit: Da Verarbeitungsschritte geskriptet sind und in der Regel nicht von Tastatur- oder Mauseingaben zur „Laufzeit“ der Analyse abhängig sind, reduziert sich meiner Meinung nach im Allgemeinen die Fehleranfälligkeit. Natürlich können sich auch in einem Skript noch Fehler einschleichen, aber zum Beispiel die doch ab und zu beobachteten (und von Excel gut versteckten) fehlerhaften Bezüge in umfangreichen Excel-Dateien gibt es in R zum Beispiel nicht. (Falsche Bezüge in Excel können einen ja bekanntermassen bei wirtschaftlich sehr wichtigen Entscheiden aufs Glatteis führen.)
- Reproduzierbarkeit: Haben sich Ihre Daten seit dem letzten Anfassen inhaltlich geändert? Kein Problem, ich kann einfach mein R-Skript mit den zusätzlichen, aktualisierten oder korrigierten Daten nochmals laufen lassen und R macht dieselben Aufbereitungs- und Analyseschritte nochmals und spuckt im Hintergrund zwei Dutzend oder auch hunderte aktualisierter Grafiken aus, während ich mich anderen Problemen widme oder einen Tee trinke. Nicht zu vergleichen mit dem Aufwand, der wahrscheinlich nötig gewesen wäre, wäre der ganze Workflow nicht geskriptet umgesetzt gewesen. Wenn ich Grafiken nochmals neu produziere, laufe ich mit R auch nicht wie zum Beispiel bei Excel und Co. Gefahr, einen wichtigen manuellen Arbeitsschritt zu vergessen oder falsch auszuführen. Ich muss auch nicht alle Excel-Grafiken für die Weiterverwendung dann nochmals wieder in Rastergrafiken umwandeln.
Zuguterletzt: Mit der R-Bridge rücken R und ArcGIS künftig viel näher zusammen. Beispielsweise können in R Daten in einer File Geodatabase gelesen und analysiert werden. Auch im Microsoft-Ökosystem wird R künftig eine stärkere Rolle spielen, beispielsweise können im cloudbasierten Microsoft Azure Machine Learning (ML) Analysen in R geschrieben werden.
Hat dieser Artikel Ihr Interesse an R geweckt? Ist R das richtige Tool für Ihre Organisation? Möchten Sie gerne eine vertiefte Einführung erhalten? Wie kann R mit Ihren bestehenden Tools oder mit Ihren Python-Skripts kombiniert werden? Kontaktieren Sie mich unverbindlich.
Entdecke mehr von digital.ebp.ch
Melde dich für ein Abonnement an, um die neuesten Beiträge per E-Mail zu erhalten.