R funkcija rbind() gali būti naudojama duomenų rin­ki­niams, tu­rin­tiems vienodą stulpelių skaičių, sujungti.

Kokia yra rbind() funkcija R?

R funkcija rbind() yra naudinga duomenims sujungti eilutė po eilutės. Ji dažnai naudojama naujai in­for­ma­ci­jai pridėti prie esamo duomenų rėmo. Tai yra naudinga, jei re­gu­lia­riai at­nau­ji­na­te duomenis ir turite juos in­te­gruo­ti į esamą duomenų rinkinį.

R’s rbind() taip pat nau­do­ja­mas dviejų tos pačios struk­tū­ros duomenų rėmelių su­jun­gi­mui, siekiant pa­leng­vin­ti išsamesnę analizę arba sujungti skir­tin­gas duomenų rinkinio dalis. At­kreip­ki­te dėmesį, kad rbind() veiks­min­gai veikia mažesnių duomenų rinkinių atveju, tačiau tokie paketai kaip dplyr užtikrina geresnį našumą didesnių duomenų rinkinių atveju.

Kokia yra R rbind() sintaksė?

Į rbind() galite įvesti tiek duomenų rėmelių, kiek norite, ir juos sujungti. Tiesiog įsi­ti­kin­ki­te, kad visi duomenų rėmeliai turi vienodą stulpelių skaičių ir vienodus stulpelių pa­va­di­ni­mus.

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

Ar­gu­men­tai data.frame1, data.frame2 ir t. t. reiškia duomenų rėmus arba duomenų rėmų sąrašus, kurie bus susieti eilutė po eilutės.

Pa­vyz­džiai, kaip naudoti rbind() R

Toliau pa­teik­si­me keletą pavyzdžių, kaip naudoti R funkciją rbind(). Pir­miau­sia sukursime duomenų rėmelį su dviem stul­pe­liais:

#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­zul­ta­tas atrodo taip:

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

Toliau api­brė­ši­me antrąjį duomenų rėmelį su tuo pačiu stulpelių skaičiumi:

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

Išvestis:

names    status
 1  Eva            doctor 
2   John          nurse
R

Dabar galime sujungti du duomenų rėmus tar­pu­sa­vy­je:

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

Re­zul­ta­tas atrodys taip:

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

Kas nutinka, jei duomenų rėmeliai turi skirtingą stulpelių skaičių?

Toliau pa­ro­dy­si­me, kas atsitinka, kai bandote sujungti du duomenų rėmus, turinčius skirtingą stulpelių skaičių.

Pir­miau­sia dar kartą sukursime duomenų rėmelį su dviem stul­pe­liais:

#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

Išvestis:

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

Dabar sukursime duomenų rėmelį su trimis stul­pe­liais:

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

Išvestis:

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

Kai bandysime sujungti du duomenų rėmus naudodami rbind(), gausime šią klaidos žinutę:

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

Klaida rodo, kad negalime naudoti R rbind(), kad sujungti du duomenų rėmus, nes jie turi skirtingą stulpelių skaičių. Tačiau galime naudoti bind_rows()dplr paketo.

Kaip sujungti duomenų rėmus su skirtingu stulpelių skaičiumi

Duomenų rėmeliai iš aukščiau pateikto pavyzdžio gali būti lengvai sujungti su bind_rows().

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

Re­zul­ta­tas atrodo taip:

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() sėkmingai sujungia du duomenų rėmus. Tušti laukai pažymėti <NA>. Ši funkcija yra gera al­ter­na­ty­va rbind() R, jei reikia sujungti duomenų rėmus su skirtingu stulpelių skaičiumi.

Tip

Norite sužinoti daugiau apie duomenų rinkinių rodymą ir re­da­ga­vi­mą R? Per­žiū­rė­ki­te mūsų pamokėles apie R plot ir R paste.

Go to Main Menu