# wir machen etwas, und speichern es in ein Objekt
<- mache.etwas(Datensatz)
habe.getan
# dann machen wir etwas weiteres,
# und speichern wieder in ein Objekt
<- mache.weiteres(habe.getan)
habe.weiteres.getan
# und kommen schließlich zum Endergebnis
<- mache.noch.letzte.Sache(habe.weiteres.getan) endergebnis
11 Pipe
Ein wichtiger Operator für den Umgang mit Datensätzen ist die Pipe
. Diese ist fester Bestandteil des Tidyverse (siehe Abschnitt 24.2) und hat sich dort so bewährt, dass sie seit R Version 4.1 ebenfalls im “Standard”-R implementiert ist.
Die Pipe
erlaubt es, Datenströme weiterzuleiten.
Hierfür wurde ein eigener Operator implementiert, die Zeichenkette |>
Sie bedeutet so viel wie “und dann”.
Zur Eklärung sei der “klassische Weg” der Arbeitsschritte in R
aufgezeigt:
Mit Einsatz der Pipe
wird dieser Prozess quasi umgekehrt in
# Speichere Endergebnis
<- Datensatz |>
endergebnis gruppiere.nach.geschlecht() |>
aufsteigend() |>
sortiere Alter 4 Werte() nimm die letzten
Die liest sich in etwa so:
“Speichere etwas ins Objekt
endergebnis
, und das geht so…nimm den
Datensatz
und danngruppiere die Daten nach
geschlecht
und dannsortiere nach
Alter
aufsteigend und dannnimm die letzten 4 Werte. ”
Die Pipe
reicht das jeweilige Ergebnis (den Datenstrom) an die nächste Code-Zeile weiter. Erst wenn die letzte Zeile durchgelaufen ist, wird das Resultat in endergebnis
gespeichert.
Dies liest sich zu Beginn evtl. etwas ungewohnt, aber Sie können erkennen, dass die Befehle so wesentlich übersichtlicher und die einzelnen Manipulationsschritte nachvollziehbarer geworden sind. Auch kann man sich diese Art der “Grammatik” relativ leicht merken.
Standardmäßig übergibt die Pipe das Objekt auf der linken Seite an das erste Argument der Funktion auf der rechten Seite, so dass x |> f(y)
äquivalent zu f(x, y)
ist, und x |> f(y) |> g(z)
äquivalent zu g(f(x, y), z)
.
Mehr über die “Original”-Pipe %>%
des Tidyverse sowie zu den Unterschieden zur Standard-Pipe |>
finden Sie in Abschnitt 24.2.
In RStudio können Sie einstellen, ob Sie mit der Tastenkombination [STRG]
+ [SHFIT]
+ [M]
die Tidyverse-Pipe oder die Standard-Pipe erzeugen möchten. Wählen Sie hierzu im Menü “Tools” \(\rightarrow\) “Global Option” \(\rightarrow\) “Code” aus, siehe Abbildung 11.1
Sie sollten die Standard-Pipe nutzen, weil sie Teil von Base R ist und Ihnen immer zur Verfügung steht, auch wenn Sie Tidyverse nicht verwenden. Zudem ist |>
um einiges schneller als %>%
.