2  Tidyverse

2.1 Überblick

Das Tidyverse ist eine Paketsammlung, mit der wir Daten einlesen, verarbeiten, modellieren und visualisieren können. Bevor wir uns im nächsten Kapitel auf das Visualisieren mit ggplot2 stürzen, soll es hier eine kurze Übersicht geben, was das Tidyverse eigentlich ist.

Abbildung 2.1: Wichtige Pakete aus der Paketsammlung Tidyverse und deren Bedeutung.
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.2.1          ✔ readr     2.2.0     
✔ forcats   1.0.1          ✔ stringr   1.6.0     
✔ ggplot2   4.0.3.9000     ✔ tibble    3.3.1     
✔ lubridate 1.9.5          ✔ tidyr     1.3.2     
✔ purrr     1.2.2          
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Das Tidyverse ist nicht ein einzelnes Paket, sondern eine Sammlung von Paketen. Lädt man das Tidyverse, so sieht man die wichtigsten Pakete und deren aktuell installierte Versionen. Für eine komplette Liste der Tidyverse-Pakete gibt es die Funktion:

 [1] "broom"         "conflicted"    "cli"           "dbplyr"       
 [5] "dplyr"         "dtplyr"        "forcats"       "ggplot2"      
 [9] "googledrive"   "googlesheets4" "haven"         "hms"          
[13] "httr"          "jsonlite"      "lubridate"     "magrittr"     
[17] "modelr"        "pillar"        "purrr"         "ragg"         
[21] "readr"         "readxl"        "reprex"        "rlang"        
[25] "rstudioapi"    "rvest"         "stringr"       "tibble"       
[29] "tidyr"         "xml2"          "tidyverse"    

Tidyverse arbeitet mit rechteckigen Datentabellen, den Tibbles tibble (oder Data Frames).

Erhobene Daten müssen immer zuerst importiert und in einen bereinigten (tidy) Tibble gebracht werden, bevor man die Daten visualisieren, analysieren und modellieren kann. Für jede dieser Aufgaben gibt es ein Paket, das Teil des Tidyverses ist. Um einen besseren Überblick zu erhalten, stellen wir diese Pakete im nächsten Abschnitt kurz vor.

2.2 Die Kern-Pakete

2.2.1 Import

  • readr: Mit dem Paket readr können Dateien im csv- oder tsv-Format eingelesen werden. Dies sind reine Textdateien, bei denen die Merkmale (Spalten) durch Komma, Semikolon, Tab oder einen beliebigen anderen (Spalten-)Trenner getrennt sind.

  • readxl: Mit readxl können Excel-Dateien eingelesen werden. Diese enden auf .xls oder .xlsx.

  • haven: Das Paket haven dient dazu, Dateien einzulesen, die mit Hilfe der Statistikprogramme SPSS, SAS oder Stata erzeugt wurden.

2.2.2 Analyse / Exploration

  • Der Namensgeber des Tidyverse, tidyr, dient dazu, Datentabellen zu bereinigen. Mit dem Paket dplyr können Daten (im positivsten Sinne) manipuliert werden: Merkmale können gefiltert, sortiert, entfernt oder umbenannt werden, man kann Ausprägungen der Merkmale ändern oder neue Merkmale erstellen. Ebenso können auch Kenngrößen aus vorhandenen Merkmalen berechnet werden. Eine Erweiterung liefert das Paket purrr, mit dem Funktionen auf die Daten angewendet werden können, so dass die Resultate nicht notwendigerweise Tibbles sein müssen.

  • ggplot2 ist das Paket, mit dem Grafiken aus Datentabellen erstellt werden können.

  • Die Pakete stringr, forcats und lubridate bzw. hms helfen im Umgang mit Zeichenketten, Faktoren (kategoriale Merkmale) und Datums- bzw. Zeitangaben.

  • Das Pakettidymodels ist eine Paket-Sammlung, die insbesondere für Modellierung und Machine Learning entwickelt wurde. Es bietet eine einheitliche Schnittstelle für hunderte verschiedene R-Modelle (lineare Regression, Random Forests, neuronale Netze, etc.), sowie Evalutionen und Prognosen der Modelle, sowie saubere, tabellarische Formate für die Ergebnisse.

2.2.3 Kommunikation

Quarto ist eine Software, um PDF- oder MS-Word-Dokumente, HTML-Seiten, Beamer-, Revealjs- oder PowerPoint-Präsentationen zu erstellen. Quarto ist nicht im Paket tidyverse enthalten, ist aber in einer Grundversion bereits im RStudio enthalten. Es gibt ein Paket quarto, das das Arbeiten noch vereinfacht, da Befehle wie quarto_render() oder quarto_preview() bereitgestellt werden.

In dem Moment, in dem wir eine Präsentation oder ein Dokument erstellen möchten, das R-Code und/oder aus Daten erzeugte Grafiken oder Tabellen enthält, lohnt es sich, Quarto zu verwenden. Ein großer Vorteil ist, dass R-Code (oder auch Python-Code) einfach integriert werden kann und Grafiken oder Tabellen dynamisch in dem jeweiligen Dokument erzeugt werden können. Das vereinfacht das Erstellen von Dokumenten ungemein, da nicht mehrere Programme nebeneinander genutzt werden müssen.