Dieselben Daten derselben Merkmalsträger in denselben Variablen können in unterschiedlichen Datensätzen resultieren:
ID
bill_length
bill_depth
A
39.4
18.2
B
37.6
17.9
ID
bill_variable
bill_value
A
bill_depth
18.2
B
bill_depth
17.9
A
bill_length
39.4
B
bill_length
37.6
Das führt oft dazu, dass Daten in einem anderen Format vorliegen, als sie für ein Wrangling, eine Visualisierung oder eine statistische Modellierung benötigt werden. Dementsprechend ist es hilfreich, das Format ändern zu können. Dies kann sehr komplex werden - im folgenden betrachten wir eher einfache Minimalbeispiele.
Beispiel 1: bill-Variablen
TippBeispielstudie
Angenommen ein Forscher:innenteam möchte Mittelwert und Standardabweichungen aller bill Variablen getrennt nach species und sex haben. Was wäre eine geeignete Syntax?
Lägen die Daten wie in der Tabelle 1 (rechts) vor, könnte man einen Spilt-Apply-Combine-Approach mit group_by(sepcies, sex, billvariable) anwenden.
Tabelle 1: Tabelle für Split-Apply-Combine
species
sex
bill_variable
bill_value
Adelie
male
bill_depth
18.2
Chinstrap
male
bill_depth
17.9
Chinstrap
male
bill_length
39.4
Gentoo
female
bill_length
37.6
Ein Format wie in Tabelle 1 erhält man durch folgende Syntax:
Angenommen ein Forscher:innenteam erhebt zu zwei Zeitpunkten das Mathamatikselbstkonzept sowie die Mathematikleistung in den folgenden beiden Datensätzen.
Tabelle 2: Datensatz data_mathe_t1
ID
selbst_t1
mleist_t1
A
5.3
532
B
6.1
610
C
4.8
480
Tabelle 3: Datensatz data_mathe_t2
ID
selbst_t2
mleist_t2
A
5.0
562
B
5.7
652
C
4.2
489
Es möchte nun MW SD je Variable und je Zeitpunkt sowie die Korrelation von Selbstkonzept und Leistung sowohl je Zeitpunkt als auch über beide Zeitpunkte hinweg berechnen.
In folgendem Codefenster sind die beiden Datensätze data_mathe_t1 und data_mathe_t2 als ebenso benannte Objekte hinterlegt. Führen Sie einen geeigneten Join durch und berechnen Sie die oben genannten MW, SD und Korrelationen.
HinweisHinweis:
Für die Berechnung der MW und SD kann man schlicht alle Variablen außer ID in pivot_longer() an das Argument cols = übergeben und dann einen Split-Apply-Combine Ansatz fahren.
Für die Berechnung einer Korrelation macht es im {tidyverse} Sinn, der Base-R-Funktion cor() einen slektierten Datensatz via Pipeoperator %>% zu übergeben.
Der cor() Funktion kann mit dem Argument use = pairwise signalisiert werden, dass es paarweise vollständige Beobachtungen in die Berechnung miteinbeziehen soll (fallweiser Ausschluss von fehlenden Werten).