Kas yra R funkcija rbind()?
R funkcija rbind() gali būti naudojama duomenų rinkiniams, turintiems 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 informacijai pridėti prie esamo duomenų rėmo. Tai yra naudinga, jei reguliariai atnaujinate duomenis ir turite juos integruoti į esamą duomenų rinkinį.
R’s rbind() taip pat naudojamas dviejų tos pačios struktūros duomenų rėmelių sujungimui, siekiant palengvinti išsamesnę analizę arba sujungti skirtingas duomenų rinkinio dalis. Atkreipkite dėmesį, kad rbind() veiksmingai 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 įsitikinkite, kad visi duomenų rėmeliai turi vienodą stulpelių skaičių ir vienodus stulpelių pavadinimus.
rbind(data.frame1, data.frame2, ...)RArgumentai 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.
Pavyzdžiai, kaip naudoti rbind() R
Toliau pateiksime keletą pavyzdžių, kaip naudoti R funkciją rbind(). Pirmiausia sukursime duomenų rėmelį su dviem stulpeliais:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1RRezultatas atrodo taip:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseRToliau apibrėšime 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)
df2RIšvestis:
names status
1 Eva doctor
2 John nurseRDabar galime sujungti du duomenų rėmus tarpusavyje:
#binding rows of df1 and df2
rbind(df1,df2)RRezultatas atrodys taip:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
6 Eva doctor
7 John nurseRKas nutinka, jei duomenų rėmeliai turi skirtingą stulpelių skaičių?
Toliau parodysime, kas atsitinka, kai bandote sujungti du duomenų rėmus, turinčius skirtingą stulpelių skaičių.
Pirmiausia dar kartą sukursime duomenų rėmelį su dviem stulpeliais:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1RIšvestis:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseRDabar sukursime duomenų rėmelį su trimis stulpeliais:
#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2RIšvestis:
names status age
1 Eva doctor 52
2 John nurse 38RKai 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 matchRKlaida 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() iš 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)RRezultatas 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 38Rbind_rows() sėkmingai sujungia du duomenų rėmus. Tušti laukai pažymėti <NA>. Ši funkcija yra gera alternatyva rbind() R, jei reikia sujungti duomenų rėmus su skirtingu stulpelių skaičiumi.