Oftmals liegen Rohdaten in unterschiedlichen files vor. Diese kommen etwa aus verschiedenen Erhebungswellen oder verschiedenen Erhebungsmethoden (z.B. Survey & Logdata). Meistens liegen dabei nicht alle Merkmalsträger in allen Teildatensätzen vor (z.B. aufgrund von Panelmortalität).
In {dplyr} sind die join-Funktionen für das Zusammenführen von Datensätzen geeignet:
Join-Typ
Beschreibung
full_join()
Behält alle Zeilen aus beiden Tabellen
left_join()
Behält alle Zeilen aus der linken Tabelle und ergänzt passende Werte aus der rechten Tabelle
right_join()
Behält alle Zeilen aus der rechten Tabelle und ergänzt passende Werte aus der linken Tabelle
inner_join()
Behält nur die Zeilen mit passenden Werten in beiden Tabellen
Beispiel 1 (full_join())
Als erstes wollen wir wie in folgender Abbildung dargestellt einen full_join() durchfĂĽhren:
ID
Species
D15N
N100A2
Chinstrap
9.39305
N2A2
Adelie
NA
ID
Species
bill_length_mm
N1A1
Adelie
39.1
N100A2
Chinstrap
50.2
ID
Species
D15N
bill_length_mm
N100A2
Chinstrap
9.39305
50.2
N2A2
Adelie
NA
NA
N1A1
Adelie
NA
39.1
Beide Tabellen enthalten Daten von insgesamt 3 Individuen, jeweils ein unterschiedliches Individuum fehlt in einer Tabelle. full_join() erhält alle individuen in der gejointen Tabelle und füllt fehlende Werte mit NA auf.
Beispiel 2 (left_join())
ID
Species
D15N
N100A2
Chinstrap
9.39305
N2A2
Adelie
NA
ID
Species
bill_length_mm
N1A1
Adelie
39.1
N100A2
Chinstrap
50.2
ID
Species
D15N
bill_length_mm
N100A2
Chinstrap
9.39305
50.2
N2A2
Adelie
NA
NA
Nutzt man left_join(tabelle_1, tabelle_2) bleiben nur die Individuen aus tabelle_1 erhalten. Zusätzliche Variablen von tabelle_2 werden jedoch aufgefüllt.
Beispiel 3 (right_join())
ID
Species
D15N
N100A2
Chinstrap
9.39305
N2A2
Adelie
NA
ID
Species
bill_length_mm
N1A1
Adelie
39.1
N100A2
Chinstrap
50.2
ID
Species
D15N
bill_length_mm
N100A2
Chinstrap
9.39305
50.2
N1A1
Adelie
NA
39.1
Nutzt man right_join(tabelle_1, tabelle_2) bleiben nur die Individuen aus tabelle_2 erhalten. Zusätzliche Variablen von tabelle_1 werden jedoch aufgefüllt.
Ăśbung 1
Im Folgenden Codefenster sind die beiden Minimaldatensätze data_A und data_B als Objekte hinterlegt: