R-funk­tio­nen rbind() kan användas för att kombinera da­ta­mäng­der som har samma antal kolumner.

Vad är funk­tio­nen av rbind() i R?

R-funk­tio­nen rbind() är användbar för att kombinera data rad för rad. Den används ofta för att lägga till ny in­for­ma­tion till en befintlig dataram. Detta är praktiskt om du re­gel­bun­det upp­da­te­rar dina data och behöver integrera dem i en befintlig datamängd.

R:s rbind() används också för att kombinera två dataramar med samma struktur, antingen för att un­der­lät­ta en mer grundlig analys eller för att sam­man­fö­ra olika delar av en datamängd. Observera att rbind() fungerar effektivt för mindre da­ta­mäng­der, men paket som dplyr erbjuder bättre prestanda för större da­ta­mäng­der.

Vad är syntaxen för R:s rbind()?

Du kan ange så många dataramar du vill i rbind() och kombinera dem. Se bara till att alla dataramar har samma antal kolumner och samma ko­lumn­namn.

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

Ar­gu­men­ten data.frame1, data.frame2 och så vidare står för da­ta­ra­mar­na eller listorna med dataramar som kommer att länkas rad för rad.

Exempel på hur man använder rbind() i R

Nedan tittar vi på några exempel på hur man använder funk­tio­nen rbind() i R. Först skapar vi en dataram med två kolumner:

#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

Re­sul­ta­tet ser ut som följer:

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

Därefter de­fi­ni­e­rar vi en andra dataram med samma antal kolumner:

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

Utgång:

names    status
 1  Eva            doctor 
2   John          nurse
R

Nu kan vi kombinera de två da­ta­ra­mar­na med varandra:

#binding rows of df1 and df2
rbind(df1,df2)
R

Re­sul­ta­tet kommer att se ut så här:

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

Vad händer om da­ta­ra­mar­na har olika antal kolumner?

Nedan visar vi vad som händer när du försöker kombinera två dataramar som har olika antal kolumner.

Låt oss först skapa en dataram med två kolumner:

#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

Utgång:

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

Nu skapar vi en dataram med tre kolumner:

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

Utgång:

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

När vi använder rbind() för att försöka kombinera de två da­ta­ra­mar­na får vi följande fel­med­de­lan­de:

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

Felet visar att vi inte kan använda R:s rbind() för att kombinera de två da­ta­ra­mar­na, eftersom de har olika antal kolumner. Vi kan dock använda bind_rows() från paketet dplr.

Hur man kom­bi­ne­rar dataramar med olika antal kolumner

Da­ta­ra­mar­na från exemplet ovan kan enkelt kom­bi­ne­ras med bind_rows().

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

Re­sul­ta­tet ser ut som följer:

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

bind_rows() kom­bi­ne­rar de två da­ta­ra­mar­na på ett fram­gångs­rikt sätt. Tomma fält markeras med <NA>. Funk­tio­nen är ett bra al­ter­na­tiv till rbind() i R om du behöver kombinera dataramar med olika antal kolumner.

Tips

Vill du lära dig mer om hur man visar och redigerar da­ta­mäng­der i R? Ta en titt på våra hand­led­ning­ar om R plot och R paste.

Gå till huvudmeny