4.2 Variablen mit Bedingungen erstellen

Mit mutate können wir neue Variablen erstellen, wie können wir allerdings neue Variablen abhängig bestimmter Bedingungen schreiben? Dies geht mit der Funktion case_when. Stell dir vor, du möchtest die Variable gender ändern, indem du “weiblich” statt “Female” und “männlich” statt “Male” schreibst:

## # A tibble: 1,470 x 2
##       id gender  
##    <dbl> <chr>   
##  1     1 weiblich
##  2     2 männlich
##  3     3 männlich
##  4     4 weiblich
##  5     5 männlich
##  6     6 männlich
##  7     7 weiblich
##  8     8 männlich
##  9     9 männlich
## 10    10 männlich
## # … with 1,460 more rows

case_when wird immer im Zusammenhang mit mutate verwendet. Zunächst musst du den Namen der neuen Variablen angeben. Danach folgt ein = und danach die Funktion case_when:

Innerhalb der Funktion case_when gibst du die Bedingungen an. Danach folgt eine Tilde ~ und der Wert, den du dieser Bedingung übergibst:

Mehrere Bedingungen werden mit einem Komma getrennt:

Ein anderes Beispiel: Stell dir vor, du möchtest Mitarbeiter, die mehr als 6000 Dollar brutto verdienen, den Wert “ja” zuordnen. Mitarbeiter, die weniger verdienen sollen den Wert “nein” bekommen. Hierfür legen wir eine neue Variable mit dem Namen rich_person an:

## # A tibble: 1,470 x 3
##       id monthly_income rich_person
##    <dbl>          <dbl> <chr>      
##  1     1           5993 nein       
##  2     2           5130 nein       
##  3     3           2090 nein       
##  4     4           2909 nein       
##  5     5           3468 nein       
##  6     6           3068 nein       
##  7     7           2670 nein       
##  8     8           2693 nein       
##  9     9           9526 ja         
## 10    10           5237 nein       
## # … with 1,460 more rows

Beide case_when Angaben können wir zudem miteinander verschachteln:

## # A tibble: 1,470 x 4
##       id monthly_income rich_person gender  
##    <dbl>          <dbl> <chr>       <chr>   
##  1     1           5993 nein        weiblich
##  2     2           5130 nein        männlich
##  3     3           2090 nein        männlich
##  4     4           2909 nein        weiblich
##  5     5           3468 nein        männlich
##  6     6           3068 nein        männlich
##  7     7           2670 nein        weiblich
##  8     8           2693 nein        männlich
##  9     9           9526 ja          männlich
## 10    10           5237 nein        männlich
## # … with 1,460 more rows