Wat is de functie rbind() van R?
De R-functie rbind() kan worden gebruikt om datasets met hetzelfde aantal kolommen te combineren.
Wat is de functie van rbind() in R?
De R-functie rbind() is handig om gegevens regel voor regel te combineren. Deze functie wordt vaak gebruikt om nieuwe informatie toe te voegen aan een bestaand gegevensframe. Dit is handig als u uw gegevens regelmatig bijwerkt en deze moet integreren in een bestaande gegevensset.
R’s rbind() wordt ook gebruikt om twee dataframes met dezelfde structuur te combineren, hetzij om een grondigere analyse mogelijk te maken, hetzij om verschillende delen van een dataset samen te brengen. Merk op dat rbind() efficiënt werkt voor kleinere datasets, maar dat pakketten zoals dplyr betere prestaties leveren voor grotere datasets.
Wat is de syntaxis van R’s rbind()?
U kunt zoveel dataframes invoeren als u wilt in rbind() en deze laten combineren. Zorg er wel voor dat alle dataframes hetzelfde aantal kolommen en dezelfde kolomnamen hebben.
rbind(data.frame1, data.frame2, ...)RDe argumenten data.frame1, data.frame2 enzovoort staan voor de gegevensframes of lijsten met gegevensframes die regel voor regel worden gekoppeld.
Voorbeelden van het gebruik van rbind() in R
Hieronder bekijken we enkele voorbeelden van hoe je de functie rbind() van R kunt gebruiken. Eerst maken we een dataframe met twee kolommen:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1RDe uitvoer ziet er als volgt uit:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseRVervolgens definiëren we een tweede gegevensframe met hetzelfde aantal kolommen:
#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2RUitvoer:
names status
1 Eva doctor
2 John nurseRNu kunnen we de twee gegevensframes met elkaar combineren:
#binding rows of df1 and df2
rbind(df1,df2)RHet resultaat ziet er als volgt uit:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
6 Eva doctor
7 John nurseRWat gebeurt er als gegevensframes een verschillend aantal kolommen hebben?
Hieronder laten we zien wat er gebeurt als je twee dataframes met een verschillend aantal kolommen probeert te combineren.
Laten we eerst nogmaals een gegevensframe met twee kolommen maken:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1RUitvoer:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurseRNu maken we een gegevensframe met drie kolommen:
#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2RUitvoer:
names status age
1 Eva doctor 52
2 John nurse 38RWanneer we rbind() gebruiken om de twee gegevensframes te combineren, krijgen we de volgende foutmelding:
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not matchRDe foutmelding geeft aan dat we R’s rbind() niet kunnen gebruiken om de twee dataframes te combineren, omdat ze een verschillend aantal kolommen hebben. We kunnen echter wel bind_rows() uit het dplr gebruiken.
Hoe combineer je dataframes met een verschillend aantal kolommen?
De gegevensframes uit het bovenstaande voorbeeld kunnen eenvoudig worden gecombineerd met bind_rows().
#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)RDe uitvoer ziet er als volgt uit:
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() combineert de twee dataframes met succes. Lege velden worden gemarkeerd met <NA>. De functie is een goed alternatief voor rbind() in R als u dataframes met een verschillend aantal kolommen moet combineren.