Manipulate Variables
Variablen (also Spalten) werden von Sozialwissenschaftler:innen oft
- neu generiert (zum Beispiel Skalenwerte aus Items erzeugen),
- selektiert (Variablen auswählen/weglassen)
- und relokalisiert (Variablenreihenfolge tauschen).
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
penguinsund - 2
- berechne neue Variablen und zwar:
- 3
-
die neue Variable namens
bill_length_m, die sich aus der bestehenden Variablebill_length_mmgeteilt durch 1000 ergibt… - 4
-
Wähle davon nun die Variablen
species,island,sex, … - 5
-
Bringe die Variable
body_mass_kgganz 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 insd()ignoriert man fehlende WerteNAmit dem Funktionsargumentna.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:

