Πώς να μεταφέρετε το DataFrame στο R

Pos Na Metapherete To Dataframe Sto R



Η μεταφορά ενός συνόλου δεδομένων είναι μια τέτοια λειτουργία που αναμορφώνει τα δεδομένα ώστε να ανταποκρίνονται στις ιδιαίτερες απαιτήσεις της ανάλυσης. Η μεταφορά ενός συνόλου δεδομένων περιλαμβάνει ανεστραμμένες σειρές και στήλες του συνόλου δεδομένων, με αποτέλεσμα ένα νέο σύνολο δεδομένων με εναλλασσόμενες στήλες και γραμμές. Το R παρέχει ορισμένες λειτουργίες για τη μεταφορά ενός συνόλου δεδομένων. Σε αυτό το άρθρο, θα καλύψουμε τις διάφορες μεθόδους μεταφοράς για DataFrames στο R.

Παράδειγμα 1: Μεταφέρετε το DataFrame χρησιμοποιώντας τη συνάρτηση T() στο R

Η συνάρτηση t() είναι μια ενσωματωμένη συνάρτηση του R που χρησιμοποιείται για τη μεταφορά ενός DataFrame. Ωστόσο, μετατρέπει το DataFrame σε μήτρα, επομένως οποιαδήποτε μη αριθμητική στήλη μετατρέπεται σε συμβολοσειρές χαρακτήρων. Εξετάστε το ακόλουθο σενάριο R για να μεταφέρετε το DataFrame:







MyData = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

row.names(MyData) = c('r1','r2','r3','r4','r5')

t(MyData)

Εδώ, δηλώνουμε το διάνυσμα MyData και εκχωρούμε το data.frame() σε αυτό. Εισάγουμε το δείγμα δεδομένων που περιέχει τρεις στήλες με τις τιμές μέσα στη συνάρτηση data.frame(). Μετά από αυτό, χρησιμοποιούμε τη συνάρτηση 'row.names()' και ορίζουμε τα ονόματα σειρών για τις τιμές του DataFrame 'MyData'. Τέλος, μεταφέρουμε το DataFrame «MyData» χρησιμοποιώντας τη συνάρτηση t().



Η ακόλουθη έξοδος δείχνει τη μεταφορά του DataFrame όπου τα ονόματα σειρών του αρχικού DataFrame γίνονται τα ονόματα στηλών του μεταφερόμενου DataFrame και τα ονόματα στηλών του αρχικού DataFrame χάνονται στη μεταφορά:







Παράδειγμα 2: Μεταφορά του DataFrame χρησιμοποιώντας τη συνάρτηση Transpose() στο R

Η συνάρτηση transpose() από το πακέτο 'data.table' μπορεί επίσης να χρησιμοποιηθεί για τη μεταφορά ενός DataFrame και επιστρέφει ένα DataFrame. Επομένως, πρέπει να βεβαιωθούμε ότι το 'data.table' είναι εγκατεστημένο στο R. Εάν δεν βρεθεί τότε, μπορούμε να το εγκαταστήσουμε με την ακόλουθη εντολή:

install.packages ('data.table')

Τώρα, μπορούμε εύκολα να εισαγάγουμε το πακέτο 'data.table' για πρόσβαση στη συνάρτηση transpose() στο R για να μεταφέρουμε το DataFrame. Εξετάστε τον ακόλουθο κώδικα R όπου η συνάρτηση transpose() καλείται για να μεταφέρει το DataFrame:



df <- data.frame(A = c(1:5),

B = c(6:10),
C = c(11:15))


row.names(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

Εδώ, δημιουργούμε το 'df' DataFrame με τρεις στήλες και πέντε σειρές όπου κάθε στήλη περιέχει μια ακολουθία αριθμών από το 1 έως το 5, το 6 έως το 10 και το 11 έως το 15, αντίστοιχα. Επιπλέον, εκχωρούμε τα ονόματα σειρών DataFrame χρησιμοποιώντας τη συνάρτηση row.names(). Μετά από αυτό, εκτυπώνουμε το αρχικό DataFrame στην κονσόλα.

Το αρχικό DataFrame εμφανίζεται στην οθόνη εδώ:

Στη συνέχεια, μεταφέρουμε το αρχικό «df» DataFrame αλλάζοντας τις γραμμές και τις στήλες του DataFrame.

βιβλιοθήκη (data.table)

df_trans <- transpose(df)

rownames(df_trans) <- colnames(df)

colnames(df_trans) <- rownames(df)

df_trans

Για αυτό, φορτώνουμε πρώτα τη βιβλιοθήκη 'data.table', η οποία παρέχει τα εργαλεία για εργασία με τα δεδομένα πίνακα στο R. Στη συνέχεια, η συνάρτηση transpose() χρησιμοποιείται από τη βιβλιοθήκη 'data.table'. Το προκύπτον μεταφερόμενο DataFrame εκχωρείται σε μια νέα μεταβλητή που είναι 'df_t'. Μετά από αυτό, εκχωρούμε τα ονόματα στηλών του αρχικού DataFrame 'df' ως ονόματα σειρών στο μεταφερόμενο 'df_trans' DataFrame χρησιμοποιώντας τη συνάρτηση rownames(). Στη συνέχεια, τα ονόματα σειρών του αρχικού DataFrame 'df' εκχωρούνται ως ονόματα στηλών στο μεταφερόμενο 'df_trans' DataFrame χρησιμοποιώντας τη συνάρτηση colnames().

Έτσι, η αρχική μεταφορά DataFrame επιτυγχάνεται στην έξοδο. Αντιπροσωπεύει κάθε κελί στο μεταφερόμενο DataFrame στο οποίο περιέχει την ίδια τιμή με το αντίστοιχο κελί στο αρχικό DataFrame αλλά σε διαφορετική θέση λόγω της μεταφοράς.

Παράδειγμα 3: Μεταφορά του DataFrame χρησιμοποιώντας τη συνάρτηση Tidyr Library Gather() στο R

Το πακέτο tidyr του R μπορεί να χρησιμοποιηθεί για τη μεταφορά ενός DataFrame. Αυτή η μέθοδος είναι χρήσιμη όταν θέλουμε να μετατρέψουμε ένα DataFrame από ευρεία σε μεγάλη μορφή και, στη συνέχεια, πίσω σε ευρεία μορφή με εναλλασσόμενες γραμμές και στήλες. Παρέχει πολλές λειτουργίες για τον μετασχηματισμό και την αναδιοργάνωση των δεδομένων. Πριν, πρέπει να κατεβάσουμε το πακέτο tidyr χρησιμοποιώντας συγκεκριμένα την ακόλουθη εντολή:

install.packages ('tidyr')

Ας εξετάσουμε τον ακόλουθο κώδικα R. Χρησιμοποιούμε τη συνάρτηση collect() αυτού του πακέτου για να μεταφέρουμε το ευρύ DataFrame περισσότερο:

βιβλιοθήκη (tidyr)

n = 10

tidy_df = data.frame(

ID = c(1:n),
Exam1_Marks = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Exam2_Marks = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Exam3_Marks = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))

τακτοποιημένο_df

Εδώ, ένα 'ευρύ' DataFrame μετατρέπεται σε 'μακρύ' DataFrame χρησιμοποιώντας το tidyr. Αρχικά, δημιουργούμε ένα DataFrame “tidy_df” με τρεις στήλες. Κάθε μία από αυτές τις στήλες έχει 10 τιμές.

Το μεγάλο DataFrame εμφανίζεται στην ακόλουθη οθόνη εξόδου:

Στη συνέχεια, περνάμε το DataFrame “tidy_df” στη συνάρτηση collect() με τον τελεστή σωλήνα “%>%”. Η συνάρτηση collect() από το tidyr χρησιμοποιείται για τη μετατροπή του 'tidy_df' σε ένα μεγάλο DataFrame. Η συνάρτηση collect() λαμβάνει εισόδους με το όνομα 'Εξετάσεις' που υποδεικνύει μια νέα στήλη για να κρατήσει τα ονόματα των μεταβλητών που δημιουργούνται στο μετασχηματισμό. Το 'Marks' καθορίζει τη στήλη που συγκεντρώνει τα 'Exam1_Marks' και 'Exam2_Marks' μαζί.

μακρύ <- tidy_df %>%

συλλογή (Εξετάσεις, Βαθμοί,
Exam1_Marks: Exam2_Marks)


μακρύς

Η έξοδος εμφανίζει το μακρύ DataFrame στην κονσόλα, η οποία τώρα έχει μια 'μακριά' μορφή με τρεις στήλες:

Παράδειγμα 4: Μεταφορά του DataFrame χρησιμοποιώντας τη συνάρτηση Pivot_Wider() στο R

Η επόμενη προηγμένη συνάρτηση που χρησιμοποιούμε για να μεταφέρουμε το DataFrame είναι η συνάρτηση pivot_wider(). Η pivot_wider() είναι μια συνάρτηση από το πακέτο tidyr στο R που μας επιτρέπει να μετατρέψουμε ένα 'μακρύ' DataFrame σε 'wide' DataFrame. Η συνάρτηση παίρνει τρία κύρια ορίσματα τα οποία συζητούνται στον ακόλουθο κώδικα του R:

βιβλιοθήκη (tidyr)

df <- data.frame(

id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
val = c(4, 5, 6, 7, 8, 9)


)

df

Εδώ, φορτώνουμε πρώτα το πακέτο tidyr χρησιμοποιώντας τη συνάρτηση library(). Στη συνέχεια, ορίζουμε το δείγμα DataFrame στο “df”. Το 'df' DataFrame έχει τρεις στήλες που περιέχουν διαφορετικές τιμές, αντίστοιχα. Το δείγμα DataFrame μπορεί να φανεί στην ακόλουθη έξοδο:

Μετά από αυτό, η συνάρτηση pivot_wider() από το tidyr χρησιμοποιείται για τη μετατροπή του 'df' σε 'df_wide'.

df_wide <- pivot_wider(df, names_from = var, values_from = val)

df_wide

Η συνάρτηση pivot_wider() παίρνει τρία ορίσματα εδώ. Πρώτον, χρειάζεται το 'df' DataFrame για να μετασχηματιστεί. Στη συνέχεια, το όρισμα names_from ορίζει το όνομα της στήλης που θα χρησιμοποιηθεί για τα νέα ονόματα μεταβλητών. Τέλος, το όρισμα values_from καθορίζει το όνομα της στήλης που θα χρησιμοποιηθεί για τις νέες τιμές.

Η ακόλουθη έξοδος αντιπροσωπεύει τη μεταφορά του μεγάλου DataFrame στο ευρύ DataFrame:

συμπέρασμα

Χρησιμοποιήσαμε διάφορους τρόπους για να μεταφέρουμε το DataFrame στο R. Το πρώτο παράδειγμα ορίζεται με την ενσωματωμένη μέθοδο t(). Όλα τα άλλα παραδείγματα χρειάζονταν τα πακέτα για εισαγωγή, ώστε να μπορούμε να χρησιμοποιήσουμε τις συναρτήσεις τους για τη μεταφορά του DataFrame. Ωστόσο, η καλύτερη μέθοδος για χρήση εξαρτάται από τη συγκεκριμένη κατάσταση και τη δομή δεδομένων με την οποία εργάζεστε.