R-funktiota rbind() voidaan käyttää yh­dis­tä­mään tie­to­jouk­ko­ja, joilla on sama määrä sa­rak­kei­ta.

Mikä on rbind():n tehtävä R:ssä?

R-funktio rbind() on hyö­dyl­li­nen tietojen yh­dis­tä­mi­ses­sä rivi riviltä. Sitä käytetään usein uusien tietojen li­sää­mi­seen olemassa olevaan tie­to­ra­ken­tee­seen. Tämä on kätevää, jos päivität tietojasi sään­nöl­li­ses­ti ja haluat in­tegroi­da ne olemassa olevaan tie­to­jouk­koon.

R:n rbind() käytetään myös kahden sa­man­ra­ken­tei­sen data-kehyksen yh­dis­tä­mi­seen, joko pe­rus­teel­li­sem­man analyysin hel­pot­ta­mi­sek­si tai data-joukon eri osien yh­dis­tä­mi­sek­si. Huomaa, että rbind() toimii te­hok­kaas­ti pie­nem­mil­le data-joukoille, mutta paketit kuten dplyr tarjoavat paremman suo­ri­tus­ky­vyn suu­rem­mil­le data-joukoille.

Mikä on R:n rbind()n syntaksi?

Voit syöttää rbind():een niin monta data-kehystä kuin haluat ja yhdistää ne. Varmista vain, että kaikilla data-ke­hyk­sil­lä on sama määrä sa­rak­kei­ta ja samat sa­rak­kei­den nimet.

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

Ar­gu­men­tit data.frame1, data.frame2 ja niin edelleen edustavat da­ta­ke­hyk­siä tai da­ta­ke­hys­ten luet­te­loi­ta, jotka lin­ki­te­tään rivi riviltä.

Esi­merk­ke­jä rbind() käytöstä R:ssä

Seu­raa­vas­sa tar­kas­tel­laan muutamia esi­merk­ke­jä R:n rbind() käytöstä. Ensin luodaan kahden sarakkeen data frame:

#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

Tulostus näyttää seu­raa­val­ta:

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

Seu­raa­vak­si mää­ri­tel­lään toinen dataframe, jossa on sama määrä sa­rak­kei­ta:

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

Tulos:

names    status
 1  Eva            doctor 
2   John          nurse
R

Nyt voimme yhdistää nämä kaksi data-kehystä toisiinsa:

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

Tuloksena on seuraava:

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

Mitä tapahtuu, jos tie­to­ke­hyk­sis­sä on eri määrä sa­rak­kei­ta?

Alla näytämme, mitä tapahtuu, kun yrität yhdistää kaksi data-kehystä, joissa on eri määrä sa­rak­kei­ta.

Luodaan ensin jälleen kerran kahden sarakkeen data-kehys:

#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

Tulos:

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

Nyt luomme kolmen sarakkeen data-kehyksen:

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

Tulos:

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

Kun yritämme yhdistää kaksi data-kehystä rbind(), saamme seuraavan vir­heil­moi­tuk­sen:

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

Virhe osoittaa, että emme voi käyttää R:n rbind() yh­dis­tä­mään kahta data-kehystä, koska niissä on eri määrä sa­rak­kei­ta. Voimme kuitenkin käyttää dplr paketin bind_rows().

Kuinka yhdistää data-kehykset, joissa on eri määrä sa­rak­kei­ta

Yllä olevan esimerkin tie­to­ke­hyk­set voidaan helposti yhdistää bind_rows() kanssa.

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

Tulostus näyttää seu­raa­val­ta:

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() yhdistää on­nis­tu­nees­ti kaksi data-kehystä. Tyhjät kentät on merkitty <NA>. Tämä toiminto on hyvä vaih­toeh­to rbind() R:ssä, jos haluat yhdistää data-kehyksiä, joissa on eri määrä sa­rak­kei­ta.

Vinkki

Haluatko oppia lisää tie­to­jouk­ko­jen näyt­tä­mi­ses­tä ja muok­kaa­mi­ses­ta R:ssä? Tutustu R-kuvaaja- ja R-liitä-op­paa­seem­me.

Siirry pää­va­lik­koon