Manipulate Cases

In diesem Kapitel soll es um das Auswählen von Fällen (Cases) gehen, oft auch »Filtering« genannt.

Beispiel 1: Gentoo only

Möchte man beispielsweise das arithmetische Mittel der Schnabellänge nur der Gentoo berechnen, muss man als erstes nur die Zeilen auswählen, für die species == "Gentoo TRUE ergibt. Im tidyverse verwendet man dazu die Funktion filter() aus dem Paket {dplyr}.

penguins %>% 
  filter(species == "Gentoo")
# A tibble: 124 × 8
   species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
   <fct>   <fct>           <dbl>         <dbl>             <int>       <int>
 1 Gentoo  Biscoe           46.1          13.2               211        4500
 2 Gentoo  Biscoe           50            16.3               230        5700
 3 Gentoo  Biscoe           48.7          14.1               210        4450
 4 Gentoo  Biscoe           50            15.2               218        5700
 5 Gentoo  Biscoe           47.6          14.5               215        5400
 6 Gentoo  Biscoe           46.5          13.5               210        4550
 7 Gentoo  Biscoe           45.4          14.6               211        4800
 8 Gentoo  Biscoe           46.7          15.3               219        5200
 9 Gentoo  Biscoe           43.3          13.4               209        4400
10 Gentoo  Biscoe           46.8          15.4               215        5150
# ℹ 114 more rows
# ℹ 2 more variables: sex <fct>, year <int>
# oder gleichwertig
filter(penguins, 
       species == "Gentoo")
# A tibble: 124 × 8
   species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
   <fct>   <fct>           <dbl>         <dbl>             <int>       <int>
 1 Gentoo  Biscoe           46.1          13.2               211        4500
 2 Gentoo  Biscoe           50            16.3               230        5700
 3 Gentoo  Biscoe           48.7          14.1               210        4450
 4 Gentoo  Biscoe           50            15.2               218        5700
 5 Gentoo  Biscoe           47.6          14.5               215        5400
 6 Gentoo  Biscoe           46.5          13.5               210        4550
 7 Gentoo  Biscoe           45.4          14.6               211        4800
 8 Gentoo  Biscoe           46.7          15.3               219        5200
 9 Gentoo  Biscoe           43.3          13.4               209        4400
10 Gentoo  Biscoe           46.8          15.4               215        5150
# ℹ 114 more rows
# ℹ 2 more variables: sex <fct>, year <int>

Der Pipe-Operator a %>% b %>% c bedeutet dabei in etwa »nimm a und mache damit b und mache mit dem Ergebnis davon c«.

Übung 1

Filtern Sie den penguins Datensatz so, dass er nur weibliche Tiere enthält.

NoteHinweis:

Die Variablennamen sind im Absatz zuvor sichtbar.

TipEine Lösung:
penguins %>% 
  filter(sex == "female")
WarningAchtung

sex == female (ohne Anführungszeichen) würde nicht funktionieren, da R sonst nach dem Objekt female sucht.


Das Paket {dplyr} hat viele hilfreiche vektorisierte Funktionen für die Manipulation von Fällen. Einen guten Überblick liefert das Cheatsheet.

https://rstudio.github.io/cheatsheets/

https://rstudio.github.io/cheatsheets/