R-funksjonen rbind() kan brukes til å kombinere datasett som har samme antall kolonner.

Hva er funksjonen til rbind() i R?

R-funksjonen rbind() er nyttig for å kombinere data linje for linje. Den brukes ofte til å legge til ny informasjon i en eksisterende dataramme. Dette er praktisk hvis du regelmessig oppdaterer dataene dine og trenger å integrere dem i et eksisterende datasett.

R’s rbind() brukes også til å kombinere to datarammer med samme struktur, enten for å muliggjøre en grundigere analyse eller for å samle ulike deler av et datasett. Merk at rbind() fungerer effektivt for mindre datasett, men pakker som dplyr gir bedre ytelse for større datasett.

Hva er syntaksen til R’s rbind()?

Du kan legge inn så mange datarammer du vil i rbind() og kombinere dem. Bare sørg for at alle datarammer har samme antall kolonner og samme kolonnenavn.

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

Argumentene data.frame1, data.frame2 og så videre står for datarammer eller lister over datarammer som vil bli koblet sammen linje for linje.

Eksempler på hvordan du bruker rbind() i R

Nedenfor ser vi på noen eksempler på hvordan man bruker funksjonen rbind() i R. Først oppretter vi en dataramme med to kolonner:

#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

Resultatet ser slik ut:

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

Deretter definerer vi en ny dataramme med samme antall kolonner:

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

Utdata:

names    status
 1  Eva            doctor 
2   John          nurse
R

Nå kan vi kombinere de to datarammer med hverandre:

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

Resultatet vil se slik ut:

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

Hva skjer hvis datarammer har forskjellig antall kolonner?

Nedenfor viser vi hva som skjer når du prøver å kombinere to datarammer som har forskjellig antall kolonner.

La oss først lage en dataramme med to kolonner:

#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

Utdata:

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

Nå skal vi opprette en dataramme med tre kolonner:

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

Utdata:

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

Når vi bruker rbind() for å prøve å kombinere de to datarammer, får vi følgende feilmelding:

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

Feilen viser at vi ikke kan bruke R’s rbind() til å kombinere de to datarammer, da de har forskjellig antall kolonner. Vi kan imidlertid bruke bind_rows() fra dplr -pakken.

Hvordan kombinere datarammer med forskjellig antall kolonner

Datarammer fra eksemplet ovenfor kan enkelt kombineres med bind_rows().

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

Resultatet ser slik ut:

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() kombinerer de to datarammer på en vellykket måte. Tomme felt er merket med <NA>. Funksjonen er et godt alternativ til rbind() i R hvis du trenger å kombinere datarammer med ulikt antall kolonner.

Tip

Vil du lære mer om hvordan du viser og redigerer datasett i R? Ta en titt på veiledningene våre om R plot og R paste.

Go to Main Menu