Η συνάρτηση R rbind() μπορεί να χρησιμοποιηθεί για να συνδυάσει σύνολα δεδομένων που έχουν τον ίδιο αριθμό στηλών.

Ποια είναι η λειτουργία του rbind() στο R;

Η συνάρτηση R rbind() είναι χρήσιμη για τον συνδυασμό δεδομένων γραμμή προς γραμμή. Χρησιμοποιείται συχνά για την προσθήκη νέων πληροφοριών σε ένα υπάρχον πλαίσιο δεδομένων. Αυτό είναι χρήσιμο αν ενημερώνετε τακτικά τα δεδομένα σας και πρέπει να τα ενσωματώσετε σε ένα υπάρχον σύνολο δεδομένων.

rbind() R’s rbind() χρησιμοποιείται επίσης για να συνδυάσει δύο πλαίσια δεδομένων με την ίδια δομή, είτε για να διευκολύνει μια πιο διεξοδική ανάλυση είτε για να συγκεντρώσει διαφορετικά μέρη ενός συνόλου δεδομένων. Σημειώστε ότι rbind() λειτουργεί αποτελεσματικά για μικρότερα σύνολα δεδομένων, αλλά πακέτα όπως dplyr προσφέρουν καλύτερη απόδοση για μεγαλύτερα σύνολα δεδομένων.

Ποια είναι η σύνταξη του R’s rbind();

Μπορείτε να εισαγάγετε όσα πλαίσια δεδομένων θέλετε στο rbind() και να τα συνδυάσετε. Απλά βεβαιωθείτε ότι όλα τα πλαίσια δεδομένων έχουν τον ίδιο αριθμό στηλών και τα ίδια ονόματα στηλών.

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

Τα επιχειρήματα data.frame1, data.frame2 και ούτω καθεξής αντιπροσωπεύουν τα πλαίσια δεδομένων ή τις λίστες πλαισίων δεδομένων που θα συνδεθούν γραμμή προς γραμμή.

Παραδείγματα χρήσης του rbind() στο R

Παρακάτω θα δούμε μερικά παραδείγματα χρήσης της συνάρτησης rbind() της R. Πρώτα θα δημιουργήσουμε ένα πλαίσιο δεδομένων με δύο στήλες:

#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

Το αποτέλεσμα έχει την ακόλουθη μορφή:

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

Στη συνέχεια, θα ορίσουμε ένα δεύτερο πλαίσιο δεδομένων με τον ίδιο αριθμό στηλών:

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

Έξοδος:

names    status
 1  Eva            doctor 
2   John          nurse
R

Τώρα μπορούμε να συνδυάσουμε τα δύο πλαίσια δεδομένων μεταξύ τους:

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

Το αποτέλεσμα θα έχει την ακόλουθη μορφή:

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

Τι συμβαίνει αν τα πλαίσια δεδομένων έχουν διαφορετικό αριθμό στηλών;

Παρακάτω θα δείξουμε τι συμβαίνει όταν προσπαθείτε να συνδυάσετε δύο πλαίσια δεδομένων που έχουν διαφορετικό αριθμό στηλών.

Αρχικά, ας δημιουργήσουμε ξανά ένα πλαίσιο δεδομένων με δύο στήλες:

#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

Έξοδος:

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

Τώρα θα δημιουργήσουμε ένα πλαίσιο δεδομένων με τρεις στήλες:

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

Έξοδος:

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

Όταν χρησιμοποιούμε rbind() για να προσπαθήσουμε να συνδυάσουμε τα δύο πλαίσια δεδομένων, θα λάβουμε το ακόλουθο μήνυμα σφάλματος:

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

Το σφάλμα δείχνει ότι δεν μπορούμε να χρησιμοποιήσουμε το R’s rbind() για να συνδυάσουμε τα δύο πλαίσια δεδομένων, καθώς έχουν διαφορετικό αριθμό στηλών. Ωστόσο, μπορούμε να χρησιμοποιήσουμε bind_rows() από το πακέτο dplr.

Πώς να συνδυάσετε πλαίσια δεδομένων με διαφορετικό αριθμό στηλών

Τα πλαίσια δεδομένων από το παραπάνω παράδειγμα μπορούν εύκολα να συνδυαστούν με bind_rows().

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

Το αποτέλεσμα έχει την ακόλουθη μορφή:

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() συνδυάζει με επιτυχία τα δύο πλαίσια δεδομένων. Τα κενά πεδία επισημαίνονται με <NA>. Η συνάρτηση είναι μια καλή εναλλακτική λύση για rbind() στο R, αν χρειαστεί να συνδυάσετε πλαίσια δεδομένων με διαφορετικό αριθμό στηλών.

Tip

Θέλετε να μάθετε περισσότερα σχετικά με την εμφάνιση και την επεξεργασία συνόλων δεδομένων στο R; Ρίξτε μια ματιά στα σεμινάριά μας για το R plot και το R paste.

Go to Main Menu