Tidyverse: ein moderner Ansatz für Datenanalysen in R

Ein bedeutender Vorteil der statistischen Programmiersprache R ist (neben vielen weiteren) die große Menge an frei verfügbaren Erweiterungen. Diese als Packages bezeichneten Bibliotheken bieten die Möglichkeit, den Funktionsumfang von Basis-R bequem zu ergänzen, ohne z.B. komplexe Algorithmen und Datenstrukturen selbst implementieren zu müssen. Hierzu bindet man das betreffende Package mittels library() in das aktuelle Projekt ein und kann so die Funktionalität an die jeweiligen Bedürfnisse anpassen. Im praktischen R-Einsatz ist daher das Laden von spezialisierten Packages einer der ersten Schritte am Anfang einer Datenanalyse. Aber Packages sind keine Einbahnstraße – sie ermöglichen es ebenso, selbst entwickelte Funktionen und Daten anderen in strukturierter Form zur Verfügung zu stellen (z.B. auf CRAN oder Github).

Im Laufe der 25-jährigen Entwicklungsgeschichte von R wurden so der Community viele tausende Packages bereitgestellt (und von dieser auch intensiv genutzt). Innerhalb dieser riesigen Menge lassen sich verschiedene Strömungen erkennen. Bei den meisten verlaufen diese entlang methodischer Kriterien (also z.B. Packages zur Verwendung bestimmter statistischer Verfahren oder Datenbankschnittstellen) oder Anwendungsgebieten (z.B. Bioinformatik oder geographische Daten). Daneben existieren aber auch Packages, die den allgemeinen Workflow betreffen, also die Art und Weise der Programmierung und Interaktion mit R. Insbesondere im Gebiet der Data Science, die ihrem Wesen nach eher interaktiv und explorativ ist, haben sich hier gewisse Packages herauskristallisiert.

Das Tidyverse

Besonders hervorzuheben ist dabei das sogenannte Tidyverse. Bei diesem handelt es sich um eine Sammlung von R-Packages, die eine gemeinsame Sichtweise auf einzelne Schritte der Datenanalyse und die im Zentrum stehenden Datenstrukturen eint. Das Tidyverse wurde allerdings nicht am Reißbrett entworfen, sondern hat sich (mehr oder weniger) „organisch“ entwickelt. Hierbei gab es seit etwa 2005 einige Vorläufer-Packages (z.B. reshape, reshape2, plyr), in denen sich erste Grundideen abzeichneten und mit fortschreitenden Versionen zunehmend verfeinerten. Ein extrem wichtiger Meilenstein war 2014 die Einführung des sogenannten Pipe-Operators %>% aus dem magrittr-Package. Durch die  Bereitstellung dieses einfachen (und eigentlich nicht neuen) Konstrukts im R-Ökosystem, entwickelte sich ein neuer Coding-Stil, der sich in kürzester Zeit verbreitete und wiederum neue Ideen nach sich zog. Mittlerweile existieren im Tidyverse ein eigenes Manifest, eine eigene „Bibel“, ein eigenes Meta-Package sowie natürlich eine eigene Anlaufstelle.

Die Köpfe dahinter

Wie fast alle größeren Packages wird das Tidyverse von einer Vielzahl von Entwickler_innen gepflegt und ausgebaut. Eine Person steht hierbei jedoch meist im Vordergrund – Hadley Wickham, Statistikprofessor und mittlerweile Chief Scientist bei RStudio. Von vielen als „Pate“ des Tidyverse bezeichnet (daher auch die anfängliche Namensgebung „Hadleyverse), ist er der Vordenker und das Gesicht dieser Strömung. Zum einen legte er als aktiver Package-Autor viele der Grundsteine, zum anderen trägt er mit Präsentationen und Publikationen maßgeblich zur Verbreitung der Tidyverse-Gedankens bei.

Die Philosophie

Diese besteht im Kern aus vier simplen Prinzipien:

Prinzipien der Tidyverse Philosophie

Für manche mögen diese Richtlinien trivial erscheinen und dem gesunden Menschenverstand entsprechen. Aber gerade in der Softwareentwicklung im akademischen Bereich (von wo R und viele der Beitragenden ursprünglich herkommen) sind diese Prinzipien keine Selbstverständlichkeit. Der Großteil des R-Codes wird im Alltag von softwaretechnischen Laien und Quereinsteigern geschrieben, die oftmals tief in ihrer jeweiligen Disziplin und Methodik verwurzelt sind. Hinzu kommt, dass viele Datenanalysen ad hoc durchgeführt werden und somit die Einfachheit und Wiederverwendbarkeit des Codes nicht zwangsläufig im Mittelpunkt stehen. Dem dadurch entstehenden Wirrwarr vorzubeugen und ein Umdenken innerhalb der Community zu bewirken, ist eines der Ziele des Tidyverse.

Vorteile und Nutzen

Neben erhöhter Konsistenz zwischen verschiedenen Packages (Hat man verstanden, wie eine Funktion funktioniert, kann man dieses Wissen problemlos auf andere übertragen.) und der damit einhergehenden Verbesserung des Data-Science-Workflows, liegt ein immenser Vorteil dieses Ansatzes in der resultierenden einfachen Vermittelbarkeit. Gerade für Neulinge war der Weg zu ersten Erfolgserlebnissen in R oft ein steiniger, da einige „Besonderheiten“ der Programmiersprache die anfängliche Motivation unnötig dämpften. Durch die Verfügbarkeit des Tidyverse ist es nun leichter, komplette Datenanalysen schnell und intuitiv umzusetzen.

Zum Kern des Tidyverse gehören folgende Packages:

  • readr: effizientes Einlesen von flachen Datenformaten,
  • tibble: zentrale Datenstruktur des Tidyverse (erweiterter Dataframe),
  • tidyr: Strukturieren/Vorbereiten von Dataframes,
  • purrr: Iterieren über Datenstrukturen,
  • dplyr: Manipulieren von Dataframes,
  • stringr: Manipulieren von Strings,
  • forcats: Manipulieren von kategorischen Daten (Faktoren),
  • ggplot2: publikationsreifes Visualisieren von Daten (in 2D).

Darüber hinaus werden dem Tidyverse noch einige weitere Packages zugerechnet, die bestimmte Teilaufgaben des Data-Science-Prozesses abbilden (z.B. für Datenimport, Vorverarbeitung, Programmierung und Modellierung). Außerdem wurden im Dunstkreis zusätzliche anwendungsspezifische Packages veröffentlicht (z.B. tidyquant für Finanzanalysen, tibbletime für zeitbasierte Dataframes, ggraph für Graphvisualisierung).

Wie man sieht, sind viele wichtige Grundpfeiler errichtet, ein theoretischer Unterbau formuliert und geeignete Lernmaterialien der Community bereitgestellt worden. Dennoch ist das Tidyverse immer noch im Entstehungsprozess begriffen und weit davon entfernt, „abgeschlossen“ zu sein. Viele der Ideen müssen noch reifen und natürlich gibt es auch berechtigte Kritik am aktuellen Entwicklungsstand. Aber ein großer Pluspunkt, den man dabei nicht vergessen sollte, ist, dass das Tidyverse die Einstiegsschwelle für eigene Datenanalysen in R enorm gesenkt hat. Und nicht zuletzt, dass das tägliche Arbeiten damit Spaß macht!

Autor: Daniel, Senior Consultant Data Science – TIQ Solutions GmbH

weitere Beiträge