Weiter zum Inhalt

Datasets in R zusammenführen

In diesem Tutorial lernst du, mehrere Datasets in R zu verknüpfen.
Aktualisiert 18. Sept. 2026  · 8 Min. lesen

Mit KI erkunden

ChatGPTClaudePerplexity

In der Praxis liegen Daten oft auf verschiedenen Servern und in vielen Dateien. Wenn die benötigten Daten aus mehreren Quellen stammen, musst du wissen, wie du sie so zusammenführst, dass möglichst wenig Information verloren geht und die Zuordnungen zur Struktur deiner Daten passen.

Dieses Tutorial zeigt dir:

  • Horizontales und vertikales Zusammenführen von Datasets
  • Was Primärschlüssel sind und wie sie deinen Daten Struktur geben
  • Verschiedene Join-Typen (z. B. Left Join, Inner Join, Full Join) und wie du den passenden auswählst
  • Ein häufiges Problem, auf das du achten solltest, und wie du es löst

Datasets verketten

Grundsätzlich gibt es zwei Wege, Datasets zu mergen: Du fügst deinem Datensatz entweder weitere Zeilen oder weitere Spalten hinzu. Wenn Datasets dieselben Spalten haben oder dieselben Beobachtungen enthalten, kannst du sie entsprechend vertikal oder horizontal verketten. Schauen wir uns Beispiele an.

Datasets vertikal hinzufügen

Wenn mehrere Datasets denselben Satz an Spalten haben, kannst du sie vertikal aneinanderhängen. Das heißt, du behältst die Spalten und fügst weitere Zeilen hinzu. Alles in einer Datei zu haben, macht das Aggregieren einfacher und du behältst den Überblick, ohne ständig zwischen Dateien zu wechseln.

Dataset 1

Make Num models
Honda 63
BMW 10

Dataset 2

Make Num models
Ford 26
Tesla 4

Wichtig: Wenn dieselbe Beobachtung in mehreren Datasets vorkommt und du sie mit rbind() vertikal verkettest, erhältst du Duplikate. Und obwohl beide Datasets dieselben Variablen (also Spalten) haben müssen, müssen sie nicht in derselben Reihenfolge stehen. Probier es in der Konsole unten aus!

In deinem Workspace liegen die beiden Datasets dataset1 und dataset2 wie oben gezeigt. Versuch, die Spalten von dataset1 umzusortieren. Rufe rbind() sowohl auf dataset1 und dataset2 als auch auf reordered_dataset1 und dataset2 auf.

dataset1 <- data.frame(make = c("Honda", "BMW"), num_models = c(63, 10)) dataset2 <- data.frame(make = c("Ford", "Tesla"), num_models = c(26, 4)) # Add datasets vertically rbind(dataset1, dataset2) # Reorder columns reordered_dataset1 <- dataset1[, c(2, 1)] # See that rbind() is robust to column ordering rbind(reordered_dataset1, dataset2)

Nach rbind() solltest du alle vier Automarken in einer Tabelle sehen, etwa so:

Vertikal verkettetes Dataset

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Lerne R kostenlos

Einführung in R

BasicSkill Level
4 Std.
3.1M learners
Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
See DetailsRight Arrow
Start Course

Datasets horizontal hinzufügen

Wenn Datasets denselben Satz an Beobachtungen repräsentieren, kannst du sie horizontal verketten. Diesmal behältst du die Zeilen und fügst weitere Spalten hinzu. In solchen Fällen solltest du prüfen, dass die Reihenfolge der Beobachtungen übereinstimmt. Haben die Datasets unterschiedlich viele Zeilen oder zwar gleich viele, aber in unterschiedlicher Reihenfolge, können Spalten falsch zugeordnet werden.

Erweitern wir das obige Beispiel. Angenommen, du hast zwei Dateien: eine mit Automarke und Anzahl einzigartiger Modelle und eine weitere mit Automarke und Gesamtverkäufen:

Anzahl einzigartiger Modelle

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Gesamtverkäufe

Make Sales
Ford 119157
BMW 25908
Honda 188328
Tesla 29975

Wichtig: Wenn dieselbe Beobachtung in mehreren Datasets vorkommt und du sie mit cbind() horizontal verkettest, erhältst du redundante Spalten. Und obwohl die beiden Datasets inhaltlich zusammengehören, ist die Zeilenreihenfolge entscheidend!

Rufe in der Konsole unten cbind() auf models und sales auf und gib das Ergebnis aus:

models <- data.frame(make = c("Honda", "BMW", "Ford", "Tesla"), num_models = c(63, 10, 26, 4)) sales <- data.frame(make = c("Ford", "BMW", "Honda", "Tesla"), sales = c(119157, 25908, 188328, 29975)) # Add datasets horizontally cbind(models, sales)

Du solltest etwas in dieser Art erhalten:

Models & Sales

Make Num models Make Sales
Honda 63 Ford 119157
BMW 10 BMW 25908
Ford 26 Honda 188328
Tesla 4 Tesla 29975

Siehst du das Problem? Diese Daten sind nicht tidy!

Nach den Prinzipien von Tidy Data aus diesem Grundlagenkurs sollte jede Beobachtung in genau einer Zeile stehen. Und was, wenn du in einem Dataset nur für einige Zeilen zusätzliche Informationen hast und nur diese ergänzen möchtest? Anders gesagt: Was, wenn du weitere Spalten aus einem Dataset hinzufügen möchtest, die Datasets aber nicht dieselbe Anzahl an Beobachtungen haben?

Primärschlüssel und Fremdschlüssel

Der erste Schritt beim Kombinieren von Datasets ist die Suche nach dem Primärschlüssel. Der Primärschlüssel ist die Spalte oder Kombination von Spalten, die jede Beobachtung eindeutig identifiziert. Im Beispiel mit Automarken, der Anzahl einzigartiger Modelle und den Gesamtverkäufen ist der Primärschlüssel die Spalte make.

Jetzt können wir Joins nutzen, die Standardmethode, um Datasets zu einer Tabelle zu verbinden.

Join-Typen

Es gibt viele Join-Arten. Wie du Spalten aus einem Dataset mit Spalten eines anderen per Mutating Joins ergänzt, wie du ein Dataset per Filtering Joins gegen ein anderes filterst und wie du mit Mengenoperationen arbeitest, lernst du im Kurs Joining Data in R with dplyr. Hier sind einige der gängigsten:

left_join(x, y): Gibt alle Zeilen aus x und alle Spalten aus x und y zurück. Zeilen in x ohne Treffer in y erhalten in den neuen Spalten NA. Bei mehreren Treffern zwischen x und y werden alle Kombinationen zurückgegeben.

inner_join(x, y): Gibt alle Zeilen aus x mit passenden Werten in y sowie alle Spalten aus x und y zurück. Bei mehreren Treffern zwischen x und y werden alle Kombinationen zurückgegeben.

full_join(x, y): Gibt alle Zeilen und alle Spalten aus x und y zurück. Wo es keine passenden Werte gibt, steht NA für das fehlende Element.

Die genannten Joins sind Beispiele für Mutating Joins, da sie Variablen aus zwei Datasets kombinieren.

Fehlende Keys

Angenommen, du hast zwei Datasets. Das erste heißt size und enthält Personennamen und ihre T-Shirt-Größe:

 > size
name size
1  Tom    M
2  Dan   XL
3 Keil    S

Das zweite Dataset heißt color und enthält Nachnamen, bevorzugte T-Shirt-Farben und speichert einige Informationen im Attribut row.names:

 > color
     surname color
Tom     Jeon  <NA>
Dan    Smith  Dark
Bob McLadden Light

Merkst du, was hier schiefgehen kann? Joins über zwei Tabellen werden kompliziert, wenn Keys fehlen oder doppelt vorkommen. In diesem Beispiel speichern R-Data-Frames wichtige Informationen im Attribut row.names. In so einem Fall kannst du den Key mit Join-Funktionen nicht ansprechen, weil diese nur auf Spalten des Data Frames zugreifen.

Der einfache Trick zur Lösung ist die Funktion rownames_to_column() aus dem Paket tibble. Sie gibt eine Kopie deines Datasets zurück und fügt die Zeilennamen als eigene Spalte hinzu. Das erste Argument von rownames_to_column() ist dein Data-Frame-Objekt, das zweite ein String mit dem Namen der hinzuzufügenden Spalte.

Probier es unten in der Konsole aus. Die Datasets size und color sind in deinem Workspace vorab geladen.

color <- data.frame(surname = c("Jeon", "Smith", "McLadden"), color = c(NA, "Dark", "Light")) row.names(color) <- c("Tom", "Dan", "Bob") size <- data.frame(name = c("Tom", "Dan", "Keil"), size = c("M", "XL", "S")) # Explore here!

Zum Schluss

In der realen Welt sind Daten oft über viele Datasets und Formate verteilt. Da R für die Arbeit mit einzelnen Tabellen ausgelegt ist, gehört das Aufbereiten und Zusammenführen zu einer einzigen Tabelle zu den Kernkompetenzen. Absolviere den Skill Track Importing & Cleaning Data with R und lerne, Daten in jedem Format zu parsen und zu kombinieren. Sieh dir auch DataCamps Tutorial R Data Import an. Viel Erfolg beim Lernen!

Themen
R
Datenwissenschaft
Datenanalyse

Erfahre mehr über R

Kurs

Einführung in R

4 Std.
3.1M
Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
Details anzeigenRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

5 Min.

Tutorial

Python .append() und .extend() Methoden Tutorial

Lerne, wie du mit den Methoden .append() und .extend() Elemente zu einer Liste hinzufügst.
DataCamp Team's photo

DataCamp Team

2 Min.

Tutorial

Python-Anweisungen IF, ELIF und ELSE

In diesem Tutorial lernst du ausschließlich Python if else-Anweisungen kennen.
Sejal Jaiswal's photo

Sejal Jaiswal

9 Min.

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

24 Min.

Tutorial

Loop-Schleifen in Python-Tutorial

Lerne, wie du For-Schleifen in Python umsetzt, um eine Sequenz oder die Zeilen und Spalten eines Pandas-DataFrame zu durchlaufen.
Aditya Sharma's photo

Aditya Sharma

5 Min.

Tutorial

Python-Arrays

Python-Arrays mit Code-Beispielen. Lerne noch heute, wie du mit Python NumPy Arrays erstellen und ausdrucken kannst!
DataCamp Team's photo

DataCamp Team

3 Min.

Mehr AnzeigenMehr Anzeigen