Funkcija R rbind() se lahko uporabi za zdru­že­va­nje po­dat­kov­nih nizov, ki imajo enako število stolpcev.

Kakšna je funkcija rbind() v R?

Funkcija R rbind() je uporabna za zdru­že­va­nje podatkov po vrsticah. Pogosto se uporablja za dodajanje novih in­for­ma­cij v obstoječi po­dat­kov­ni okvir. To je koristno, če redno po­so­da­blja­te svoje podatke in jih morate vključiti v obstoječi niz podatkov.

R’s rbind() se uporablja tudi za zdru­že­va­nje dveh po­dat­kov­nih okvirov z enako strukturo, bodisi za lažjo analizo bodisi za zdru­že­va­nje različnih delov po­dat­kov­ne­ga niza. Upo­šte­vaj­te, da rbind() deluje učin­ko­vi­to za manjše po­dat­kov­ne nize, vendar paketi, kot je dplyr, ponujajo boljšo zmo­glji­vost za večje po­dat­kov­ne nize.

Kakšna je sintaksa R-jevega rbind()?

V rbind() lahko vnesete toliko po­dat­kov­nih okvirjev, kolikor želite, in jih združite. Pre­pri­čaj­te se, da imajo vsi po­dat­kov­ni okvirji enako število stolpcev in enaka imena stolpcev.

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

Argumenti data.frame1, data.frame2 in tako naprej pred­sta­vlja­jo po­dat­kov­ne okvire ali sezname po­dat­kov­nih okvirov, ki bodo povezani vrstica za vrstico.

Primeri uporabe rbind() v R

V na­da­lje­va­nju si bomo ogledali nekaj primerov uporabe funkcije rbind() v R-ju. Najprej bomo ustvarili po­dat­kov­ni okvir z dvema stolpcema:

#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

Izhod je naslednji:

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

Nato bomo de­fi­ni­ra­li drugi po­dat­kov­ni okvir z enakim številom stolpcev:

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

Izhod:

names    status
 1  Eva            doctor 
2   John          nurse
R

Sedaj lahko združimo oba po­dat­kov­na okvira:

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

Rezultat bo izgledal takole:

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

Kaj se zgodi, če imajo po­dat­kov­ni okvirji različno število stolpcev?

Spodaj bomo pokazali, kaj se zgodi, ko poskušate združiti dva po­dat­kov­na okvira, ki imata različno število stolpcev.

Najprej ponovno ustvarimo po­dat­kov­ni okvir z dvema stolpcema:

#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

Izhod:

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

Sedaj bomo ustvarili po­dat­kov­ni okvir s tremi stolpci:

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

Izhod:

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

Ko poskušamo združiti oba po­dat­kov­na okvira z uporabo rbind(), se prikaže naslednje sporočilo o napaki:

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

Napaka kaže, da ne moremo uporabiti R-ja rbind() za združitev dveh po­dat­kov­nih okvirov, saj imata različno število stolpcev. Vendar pa lahko uporabimo bind_rows() iz paketa dplr.

Kako združiti po­dat­kov­ne okvire z različnim številom stolpcev

Po­dat­kov­ni okviri iz zgornjega primera se lahko enostavno združijo s bind_rows().

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

Izhod je naslednji:

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() uspešno združi oba po­dat­kov­na okvira. Prazna polja so označena s <NA>. Funkcija je dobra al­ter­na­ti­va rbind() v R, če morate združiti po­dat­kov­ne okvire z različnim številom stolpcev.

Tip

Želite izvedeti več o pri­ka­zo­va­nju in urejanju po­dat­kov­nih nizov v R? Oglejte si naše vodiče o R plot in R paste.

Go to Main Menu