R funkciju rbind() var izmantot, lai apvienotu datu kopas, kurām ir vienāds kolonnu skaits.

Kāda ir funkcija rbind() programmā R?

R funkcija rbind() ir noderīga, lai apvienotu datus rindu pa rindai. To bieži izmanto, lai pie­vie­no­tu jaunu in­for­mā­ci­ju esošajam datu rāmim. Tas ir ērti, ja regulāri at­jau­ni­nāt datus un ne­pie­cie­šams tos integrēt esošajā datu kopā.

R’s rbind() tiek izmantots arī, lai apvienotu divus datu rāmjus ar vienādu struktūru, vai nu lai at­vieg­lo­tu pa­dzi­ļi­nā­tu analīzi, vai arī lai apvienotu dažādas datu kopas daļas. Jāņem vērā, ka rbind() efektīvi darbojas ar mazākiem datu kopumiem, bet tādi pakotnes kā dplyr nodrošina labāku veikt­spē­ju lielākiem datu kopumiem.

Kāda ir R valodas rbind() sintakse?

Jūs varat ievadīt tik daudz datu rāmju, cik vēlaties, programmā rbind() un apvienot tos. Vienkārši pār­lie­ci­nie­ties, ka visiem datu rāmjiem ir vienāds kolonnu skaits un vienādi kolonnu nosaukumi.

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

Argumenti data.frame1, data.frame2 utt. apzīmē datu rāmjus vai datu rāmju sarakstus, kas tiks saistīti rindu pa rindai.

Piemēri, kā lietot rbind() R

Tālāk ap­ska­tī­sim dažus piemērus, kā izmantot R funkciju rbind(). Vispirms iz­vei­do­sim datu rāmi ar divām kolonnām:

#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

Rezultāts izskatās šādi:

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

Tālāk definēsim otro datu rāmi ar tādu pašu kolonnu skaitu:

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

Rezultāts:

names    status
 1  Eva            doctor 
2   John          nurse
R

Tagad mēs varam apvienot abus datu rāmjus:

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

Rezultāts iz­ska­tī­sies šādi:

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 notiek, ja datu rāmjiem ir atšķirīgs kolonnu skaits?

Zemāk parādīsim, kas notiek, ja mēģināt apvienot divus datu rāmjus, kuriem ir atšķirīgs kolonnu skaits.

Vispirms atkal iz­vei­do­sim datu rāmi ar divām kolonnām:

#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

Rezultāts:

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

Tagad iz­vei­do­sim datu rāmi ar trim kolonnām:

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

Rezultāts:

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

Kad mēs iz­man­to­jam rbind(), lai mēģinātu apvienot abus datu rāmjus, mēs saņemam šādu kļūdas ziņojumu:

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

Kļūda liecina, ka mēs nevaram izmantot R rbind(), lai apvienotu abus datu rāmjus, jo tiem ir atšķirīgs kolonnu skaits. Tomēr mēs varam izmantot bind_rows() no dplr paketes.

Kā apvienot datu rāmjus ar atšķirīgu kolonnu skaitu

Iepriekš minētā piemēra datu rāmji var viegli tikt apvienoti ar bind_rows().

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

Rezultāts izskatās šādi:

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() veiksmīgi apvieno abus datu rāmjus. Tukšie lauki ir atzīmēti ar <NA>. Šī funkcija ir laba al­ter­na­tī­va rbind() R, ja ne­pie­cie­šams apvienot datu rāmjus ar atšķirīgu kolonnu skaitu.

Tip

Vēlaties uzzināt vairāk par datu kopu at­tē­lo­ša­nu un re­di­ģē­ša­nu programmā R? Apskatiet mūsu apmācības ma­te­riā­lus par R plot un R paste.

Go to Main Menu