Wenn Sie Da­ten­sät­ze haben, die die gleiche Spal­ten­an­zahl besitzen, und Sie diese einfach un­ter­ein­an­der 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 zei­len­wei­se zu ver­knüp­fen. Einer der Haupt­an­wen­dungs­fäl­le besteht darin, neue In­for­ma­tio­nen zu einem be­stehen­den Data Frame hin­zu­zu­fü­gen. Dies ist nützlich, wenn Sie re­gel­mä­ßig ak­tua­li­sier­te Daten haben und diese in einen vor­han­de­nen Datensatz in­te­grie­ren möchten. Bei der Ver­ar­bei­tung von Daten in Schleifen oder ite­ra­ti­ven Prozessen führt rbind() die Er­geb­nis­se schritt­wei­se zusammen.

Darüber hinaus wird R rbind() oft zum Kom­bi­nie­ren von Data Frames mit gleicher Struktur verwendet, sei es für eine um­fas­sen­de­re Analyse oder um ver­schie­de­ne Teile eines Da­ten­sat­zes zu einem Ge­samt­da­ten­satz zu vereinen. Sie sollten beachten, dass rbind() für kleinere Da­ten­sät­ze effizient ist. Bei großen Da­ten­sät­zen ist es emp­feh­lens­wert, Pakete wie dplyr zu benutzen, da Sie so die Per­for­mance 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 kom­bi­nie­ren. Wichtig ist, dass alle über­ge­be­nen Da­ten­rah­men die gleiche Anzahl von Spalten und iden­ti­sche Spal­ten­na­men haben müssen.

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

Die Argumente data.frame1, data.frame2 usw. re­prä­sen­tie­ren die Da­ten­rah­men oder Listen von Data Frames, die zei­len­wei­se verknüpft werden sollen.

An­wen­dungs­bei­spie­le für rbind() in R

Um R rbind() an einem konkreten Beispiel zu ver­deut­li­chen, 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 de­fi­nie­ren wir einen weiteren Da­ten­rah­men mit derselben Spal­ten­an­zahl:

#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 mit­ein­an­der kom­bi­nie­ren:

#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

Da­ten­rah­men un­ter­schied­li­cher Länge können mit R rbind() nicht verbunden werden

Im Folgenden de­mons­trie­ren wir Ihnen, was passiert, wenn wir Data Frames mit einer un­ter­schied­li­chen Anzahl an Spalten kom­bi­nie­ren.

Wir erstellen zuerst wieder einen Da­ten­rah­men 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 de­fi­nie­ren wir einen Data Frame mit einer zu­sätz­li­chen 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 Feh­ler­mel­dung:

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 Spal­ten­an­zahl ungleich ist. Hierfür können wir aber bind_rows() aus dem dplr-Paket anwenden.

Da­ten­rah­men un­ter­schied­li­cher Länge können Sie mit bind_rows() kom­bi­nie­ren

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 er­folg­reich die Data Frames verbinden, und die leeren Felder werden mit <NA> markiert. Die Funktion ist daher eine gute Al­ter­na­ti­ve zu rbind() in R, wenn die Spal­ten­an­zahl der Da­ten­rah­men nicht identisch ist.

Tipp

Wenn Sie mehr zu Funk­tio­nen zur Dar­stel­lung und Be­ar­bei­tung von Da­ten­sät­zen in R wissen möchten, empfehlen wir Ihnen die Tutorials zu R plot und R paste aus unserem Ratgeber.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive
Zum Hauptmenü