R-funk­tio­nen rbind() kan bruges til at kombinere datasæt, der har samme antal kolonner.

Hvad er funk­tio­nen af rbind() i R?

R-funk­tio­nen rbind() er nyttig til at kombinere data linje for linje. Den bruges ofte til at tilføje nye op­lys­nin­ger til en ek­si­ste­ren­de dataramme. Dette er praktisk, hvis du re­gel­mæs­sigt opdaterer dine data og har brug for at integrere dem i et ek­si­ste­ren­de datasæt.

R’s rbind() bruges også til at kombinere to da­ta­ram­mer med samme struktur, enten for at lette en mere grundig analyse eller for at samle for­skel­li­ge dele af et datasæt. Bemærk, at rbind() fungerer effektivt for mindre datasæt, men pakker som dplyr tilbyder bedre ydeevne for større datasæt.

Hvad er syntaksen for R’s rbind()?

Du kan indtaste så mange da­ta­ram­mer, som du ønsker, i rbind() og få dem kom­bi­ne­ret. Bare sørg for, at alle da­ta­ram­mer har det samme antal kolonner og de samme ko­lon­ne­nav­ne.

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

Ar­gu­men­ter­ne data.frame1, data.frame2 osv. står for da­ta­ram­mer­ne eller listerne over da­ta­ram­mer, der vil blive sam­men­kæ­det linje for linje.

Eksempler på, hvordan man bruger rbind() i R

Nedenfor ser vi på nogle eksempler på, hvordan man bruger R’s rbind(). Først opretter 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

Re­sul­ta­tet ser således ud:

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

Dernæst definerer vi en anden dataramme med samme antal kolonner:

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

Output:

names    status
 1  Eva            doctor 
2   John          nurse
R

Nu kan vi kombinere de to da­ta­ram­mer med hinanden:

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

Re­sul­ta­tet vil se således ud:

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

Hvad sker der, hvis da­ta­ram­mer har et for­skel­ligt antal kolonner?

Nedenfor viser vi, hvad der sker, når du forsøger at kombinere to da­ta­ram­mer, der har et for­skel­ligt antal kolonner.

Lad os først igen oprette 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

Output:

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

Nu opretter vi 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

Output:

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

Når vi bruger rbind() til at forsøge at kombinere de to da­ta­ram­mer, får vi følgende fejl­med­del­el­se:

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

Fejlen viser, at vi ikke kan bruge R’s rbind() til at kombinere de to da­ta­ram­mer, da de har for­skel­ligt antal kolonner. Vi kan dog bruge bind_rows() fra dplr pakken.

Sådan kom­bi­ne­res da­ta­ram­mer med et for­skel­ligt antal kolonner

Da­ta­fel­ter­ne fra oven­stå­en­de eksempel kan nemt kom­bi­ne­res med bind_rows().

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

Re­sul­ta­tet ser således ud:

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­rer de to da­ta­ram­mer med succes. Tomme felter er markeret med <NA>. Funk­tio­nen er et godt al­ter­na­tiv til rbind() i R, hvis du har brug for at kombinere da­ta­ram­mer med for­skel­ligt antal kolonner.

Tip

Vil du vide mere om visning og re­di­ge­ring af datasæt i R? Se vores vej­led­nin­ger om R plot og R paste.

Gå til ho­ved­me­nu­en