Manipulate Variables

Variablen (also Spalten) werden von Sozialwissenschaftler:innen oft

In {dplyr} sind die korrespondierenden Funktionen mutate(), select() und relocate().

Beispiel (SI-Einheiten)

TipBeispielstudie

Angenommen ein Forscher:innenteam möchte den penguins-Datensatz in SI-Einheiten rekodieren (also m und kg statt mm und g) - was wäre eine geignete Syntax?

1penguins %>%
2  mutate(
3    bill_length_m = bill_length_mm/1000 ,
    bill_depth_m = bill_depth_mm/1000,
    flipper_length_m = flipper_length_mm/1000,
    body_mass_kg = body_mass_g/1000) %>%
4  select(species, island, sex, year,
         bill_length_m, bill_depth_m, 
         flipper_length_m, body_mass_kg) %>% 
5  relocate(body_mass_kg)
1
Nimm das Objekt/den Datensatz penguins und
2
berechne neue Variablen und zwar:
3
die neue Variable namens bill_length_m, die sich aus der bestehenden Variable bill_length_mm geteilt durch 1000 ergibt…
4
Wähle davon nun die Variablen species, island, sex, …
5
Bringe die Variable body_mass_kg ganz nach vorne.

Übung 1

Führen die den obigen Code Schritt für Schritt aus also zunächst nur 1, dann 1-3, dann 1-4, dann 1-5.

Übung 2

Bilden Sie eine bill_index-Variable aus der Summe der z-standardisierten bill length und depth. Selektieren Sie anschließend nur die den Schnabel betreffenden Variablen.

NoteHinweise:
  • sd() berechnet die Standardabweichung
  • Sowohl in mean() als auch in sd() ignoriert man fehlende Werte NA mit dem Funktionsargument na.rm = TRUE
  • Man könnte sich zunächst eine Funktion definieren, welche die z-Standardisierung übernimmt
TipEine Lösung
penguins %>% 
  mutate(bill_length_z = (bill_length_mm - mean(bill_length_mm, na.rm = T))/
           sd(bill_length_mm, na.rm = T),
         bill_depth_z = (bill_depth_mm - mean(bill_depth_mm, na.rm = T))/
           sd(bill_depth_mm, na.rm = T),
         bill_index = bill_length_z + bill_depth_z) %>% 
  select(contains("bill"))
# A tibble: 344 × 5
   bill_length_mm bill_depth_mm bill_length_z bill_depth_z bill_index
            <dbl>         <dbl>         <dbl>        <dbl>      <dbl>
 1           39.1          18.7        -0.883        0.784    -0.0989
 2           39.5          17.4        -0.810        0.126    -0.684 
 3           40.3          18          -0.663        0.430    -0.234 
 4           NA            NA          NA           NA        NA     
 5           36.7          19.3        -1.32         1.09     -0.235 
 6           39.3          20.6        -0.847        1.75      0.900 
 7           38.9          17.8        -0.920        0.329    -0.591 
 8           39.2          19.6        -0.865        1.24      0.375 
 9           34.1          18.1        -1.80         0.480    -1.32  
10           42            20.2        -0.352        1.54      1.19  
# ℹ 334 more rows

Weitere hilfreiche Funktionen für die Manipulation von Variablen können dem dplyr-Cheatsheet entnommen werden:

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

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