R: rbind()-Funktion und Datenzusammenführung

Wenn Sie Datensätze haben, die die gleiche Spaltenanzahl besitzen, und Sie diese einfach untereinander anordnen möchten, dann sollten Sie rbind() in R nutzen.

Was ist die Aufgabe von rbind() in R?

R rbind() ist eine nützliche Funktion, um Daten zeilenweise zu verknüpfen. Einer der Hauptanwendungsfälle besteht darin, neue Informationen zu einem bestehenden Data Frame hinzuzufügen. Dies ist nützlich, wenn Sie regelmäßig aktualisierte Daten haben und diese in einen vorhandenen Datensatz integrieren möchten. Bei der Verarbeitung von Daten in Schleifen oder iterativen Prozessen führt rbind() die Ergebnisse schrittweise zusammen.

Darüber hinaus wird R rbind() oft zum Kombinieren von Data Frames mit gleicher Struktur verwendet, sei es für eine umfassendere Analyse oder um verschiedene Teile eines Datensatzes zu einem Gesamtdatensatz zu vereinen. Sie sollten beachten, dass rbind() für kleinere Datensätze effizient ist. Bei großen Datensätzen ist es empfehlenswert, Pakete wie dplyr zu benutzen, da Sie so die Performance erhöhen.

So sieht die Syntax von R rbind() aus

Sie können beliebig viele Data Frames als Parameter von rbind() angeben, um sie zu kombinieren. Wichtig ist, dass alle übergebenen Datenrahmen die gleiche Anzahl von Spalten und identische Spaltennamen haben müssen.

rbind(data.frame1, data.frame2, ...)
R

Die Argumente data.frame1, data.frame2 usw. repräsentieren die Datenrahmen oder Listen von Data Frames, die zeilenweise verknüpft werden sollen.

Anwendungsbeispiele für rbind() in R

Um R rbind() an einem konkreten Beispiel zu verdeutlichen, erstellen wir zuerst einen Data Frame mit zwei Spalten:

#creating data frame 1

names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)

df1
R

In der Ausgabe sehen wir:

    names     status
1  Deborah    nurse
2  Tom         doctor
3  Matt       nurse
4  Laura       doctor
5  Rebecca    nurse
R

Danach definieren wir einen weiteren Datenrahmen mit derselben Spaltenanzahl:

#creating data frame 2

names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)

df2
R

Output:

      names    status
 1  doctor     Eve
2   nurse      John
R

Nun können wir die beiden Data Frames miteinander kombinieren:

#binding rows of df1 and df2

rbind(df1,df2)
R

Das Ergebnis lautet:

    names     status
1  nurse      Deborah
2  doctor    Tom
3  nurse      Matt
4  doctor    Laura
5  nurse     Rebecca
6  doctor   Eve
7  nurse    John
R

Datenrahmen unterschiedlicher Länge können mit R rbind() nicht verbunden werden

Im Folgenden demonstrieren wir Ihnen, was passiert, wenn wir Data Frames mit einer unterschiedlichen Anzahl an Spalten kombinieren.

Wir erstellen zuerst wieder einen Datenrahmen mit zwei Spalten:

#creating data frame 1

names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)

df1
R

Output:

    names     status
1  nurse      Deborah
2  doctor    Tom
3  nurse      Matt
4  doctor    Laura
5  nurse      Rebecca
R

Danach definieren wir einen Data Frame mit einer zusätzlichen dritten Spalte:

#creating data frame 2

names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)

df2
R

Output:

    names    status    age
1  doctor    Eve        52
2  nurse      John      38
R

Wir verwenden R rbind() und erhalten folgende Fehlermeldung:

rbind(df1,df2)

Error in rbind(deparse.level, ...) :
  numbers of columns of arguments do not match
R

Der Error zeigt uns, dass wir mit rbind() die beiden Data Frames nicht verbinden können, da deren Spaltenanzahl ungleich ist. Hierfür können wir aber bind_rows() aus dem dplr-Paket anwenden.

Datenrahmen unterschiedlicher Länge können Sie mit bind_rows() kombinieren

Das obige Beispiel lässt sich bequem mit bind_rows() lösen.

#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
R

Jetzt erscheint die Ausgabe:

    names    status            age
1  nurse      Deborah      <NA>
2  doctor     Tom          <NA>
3  nurse       Matt         <NA>
4  doctor     Laura        <NA>
5  nurse       Rebecca   <NA>
6  doctor     Eve            52
7  nurse       John         38
R

Mit bind_rows() können wir erfolgreich die Data Frames verbinden, und die leeren Felder werden mit <NA> markiert. Die Funktion ist daher eine gute Alternative zu rbind() in R, wenn die Spaltenanzahl der Datenrahmen nicht identisch ist.

Tipp

Wenn Sie mehr zu Funktionen zur Darstellung und Bearbeitung von Datensätzen in R wissen möchten, empfehlen wir Ihnen die Tutorials zu R plot und R paste aus unserem Ratgeber.

Günstige Webhosting-Pakete von IONOS!

Vertrauen Sie auf flexibel skalierbares und zuverlässiges Webhosting inklusive persönlichem Berater mit IONOS!

Kostenlose Domain
SSL Zertifikat
DDoS-Schutz