Tidy Data

Ein erheblicher Teil jeder Analyse und Forschungsarbeit entfällt auf die Datenaufbereitung. Nur selten lassen sich Daten unmittelbar nach dem Import in R oder Python beschreiben, visualisieren und analysieren. Die Aufbereitung von Daten erfordert Zeit und Mühe. Im vorigen Kapitel wurde das Package dplyr besprochen, das Funktionen zur Bearbeitung des Inhalts eines Data Frames enthält. In diesem Kapitel geht es um das Package tidyr, mit dem ein Data Frame strukturiert wird. Ziel ist es, Tidy Data zu erzeugen, was in den allermeisten Fällen bedeutet, dass die Zeilen Beobachtungen enthalten (zum Beispiel Patienten) und die Spalten Informationen über die Beobachtungen (zum Beispiel Geschlecht, Alter, Einkommen usw.). Die überwiegende Mehrheit aller Analysen setzt voraus, dass die Daten im Tidy-Format vorliegen.

Der große Vorteil, einen Data Frame so zu strukturieren, dass die Spalten Variablen sind, besteht darin, dass sich dadurch vektorisierte Funktionen verwenden lassen. Eine vektorisierte Funktion verwendet jeden Vektor als Input für ihre Berechnungen. Falls es Ihnen schwerfällt zu verstehen, was eine vektorisierte Funktion ist, genügt die Feststellung, dass nahezu alle Funktionen in R vektorisiert sind. In einem Data Frame können Sie eine Spalte (Variable) als Vektor betrachten.

Beispiel für Daten im Tidy-Format

Im folgenden Beispiel liegen die Daten im Tidy-Format vor, da jede Zeile eine Beobachtung (Person) und jede Spalte eine Variable ist, die die Person beschreibt.

Name Alter Einkommen Bildung Cholesterin
Adam 45 324211 Hochschule 4.5
Zara 51 198765 Grundschule 7.6

Tidy Data

Beispiel für Daten, die nicht im Tidy-Format vorliegen

Im folgenden Beispiel liegen die Daten nicht im Tidy-Format vor, da die Variablen und ihre zugehörigen Werte in nur zwei Spalten (Variable und Wert) angegeben werden.

Name Variable Wert
Adam Alter 45
Adam Einkommen 324211
Adam Bildung Hochschule
Zara Alter 51
Zara Einkommen 198765
Zara Bildung Grundschule

Daten im „Long Format“, also keine „Tidy Data“.

Es ist nicht zwangsläufig falsch, wenn Daten im Long Format vorliegen. Manchmal müssen Daten im Long Format vorliegen, um visualisiert oder analysiert werden zu können.

Beispiel für Tidy Data mit wiederholten Messungen

Im folgenden Beispiel liegen die Daten ebenfalls im Tidy-Format vor, da jede Zeile eine Beobachtung (Person) und jede Spalte eine Variable ist, die die Person beschreibt, auch wenn dieselbe Person in mehreren Zeilen vorkommt. Es handelt sich um ein Beispiel mit wiederholten Messungen an derselben Person.

Name Alter Einkommen Bildung Cholesterin
Adam 45 324211 Hochschule 4.5
Adam 46 384211 Hochschule 7.6
Adam 47 412321 Hochschule 5.1
Adam 48 48921 Hochschule 3.9

Tidy Data mit wiederholten Messungen.

In tidyr gibt es Funktionen, die Daten umordnen, sodass sie in verschiedene Formate transformiert werden können.

Beispiele für Funktionen in tidyr sind:

  • pivot_longer() - transformiert Daten in das lange Format (Long Format).
  • pivot_wider() - transformiert Daten in das breite Format (Wide Format).
  • gather() - transformiert Daten in das lange Format. Wurde durch pivot_longer() ersetzt.
  • spread() - transformiert Daten in das breite Format. Wurde durch pivot_wider() ersetzt.
  • unite() - Fügt Spalten zusammen.
  • separate() - Teilt den Inhalt einer Spalte auf mehrere Spalten auf.
  • nest(), unnest(), unnest_longer() - Verschachtelt Daten (nest) und löst die Verschachtelung auf (unnest).
  • expand(), complete() - Erweitert Daten.