R Data Frame: Τρόπος δημιουργίας, προσθήκης, επιλογής και υποομάδας
Τι είναι ένα πλαίσιο δεδομένων;
A πλαίσιο δεδομένων είναι μια λίστα διανυσμάτων που έχουν ίσο μήκος. Ένας πίνακας περιέχει μόνο έναν τύπο δεδομένων, ενώ ένα πλαίσιο δεδομένων δέχεται διαφορετικούς τύπους δεδομένων (αριθμητικό, χαρακτήρα, παράγοντα, κ.λπ.).
Πώς να δημιουργήσετε ένα πλαίσιο δεδομένων
Μπορούμε να δημιουργήσουμε ένα πλαίσιο δεδομένων στο R περνώντας τη μεταβλητή a,b,c,d στη συνάρτηση data.frame(). Μπορούμε R να δημιουργήσουμε πλαίσιο δεδομένων και να ονομάσουμε τις στήλες με name() και απλά να καθορίσουμε το όνομα των μεταβλητών.
data.frame(df, stringsAsFactors = TRUE)
Επιχειρήματα:
- df: Μπορεί να είναι ένας πίνακας για μετατροπή ως πλαίσιο δεδομένων ή μια συλλογή μεταβλητών προς ένταξη
- stringsAsFactors: Μετατροπή συμβολοσειράς σε παράγοντα από προεπιλογή
Μπορούμε να δημιουργήσουμε ένα πλαίσιο δεδομένων στο R για το πρώτο μας σύνολο δεδομένων συνδυάζοντας τέσσερις μεταβλητές ίδιου μήκους.
# Create a, b, c, d variables a <- c(10,20,30,40) b <- c('book', 'pen', 'textbook', 'pencil_case') c <- c(TRUE,FALSE,TRUE,FALSE) d <- c(2.5, 8, 10, 7) # Join the variables to create a data frame df <- data.frame(a,b,c,d) df
Παραγωγή:
## a b c d ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
Μπορούμε να δούμε ότι οι κεφαλίδες στηλών έχουν το ίδιο όνομα με τις μεταβλητές. Μπορούμε να αλλάξουμε το όνομα της στήλης στο R με τα ονόματα συναρτήσεων(). Ελέγξτε το παράδειγμα R δημιουργία πλαισίου δεδομένων παρακάτω:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Παραγωγή:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
# Print the structure str(df)
Παραγωγή:
## 'data.frame': 4 obs. of 4 variables: ## $ ID : num 10 20 30 40 ## $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3 ## $ store: logi TRUE FALSE TRUE FALSE ## $ price: num 2.5 8 10 7
Από προεπιλογή, το πλαίσιο δεδομένων επιστρέφει μεταβλητές συμβολοσειράς ως παράγοντα.
Slice Data Frame
Είναι δυνατό να ΚΟΨΕΙΣ τις τιμές ενός Πλαισίου Δεδομένων. Επιλέγουμε τις σειρές και τις στήλες που θα επιστρέψουν στην αγκύλη πριν από το όνομα του πλαισίου δεδομένων.
Ένα πλαίσιο δεδομένων αποτελείται από γραμμές και στήλες, df[A, B]. Το Α αντιπροσωπεύει τις γραμμές και το Β τις στήλες. Μπορούμε να κάνουμε φέτες είτε καθορίζοντας τις γραμμές και/ή τις στήλες.
Από την εικόνα 1, το αριστερό μέρος αντιπροσωπεύει το σειρές, και το δεξί μέρος είναι το στήλες. Σημειώστε ότι το σύμβολο : σημαίνει προς την. Για παράδειγμα, το 1:3 σκοπεύει να επιλέξει τιμές από το 1 προς την 3.
Στο παρακάτω διάγραμμα παρουσιάζουμε τον τρόπο πρόσβασης σε διαφορετικές επιλογές του πλαισίου δεδομένων:
- Το κίτρινο βέλος επιλέγει το σειρά 1 σε στήλη 2
- Το πράσινο βέλος επιλέγει το σειρές από 1 έως 2
- Το κόκκινο βέλος επιλέγει το στήλη 1
- Το μπλε βέλος επιλέγει το σειρές 1 έως 3 και στήλες από 3 έως 4
Σημειώστε ότι, αν αφήσουμε το αριστερό μέρος κενό, το R θα επιλέξει όλες οι σειρές. Κατ' αναλογία, αν αφήσουμε το δεξί μέρος κενό, το R θα επιλέξει όλες οι στήλες.
Μπορούμε να εκτελέσουμε τον κώδικα στην κονσόλα:
## Select row 1 in column 2 df[1,2]
Παραγωγή:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Παραγωγή:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Παραγωγή:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Παραγωγή:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Είναι επίσης δυνατή η επιλογή των στηλών με τα ονόματά τους. Για παράδειγμα, ο παρακάτω κώδικας εξάγει δύο στήλες: ID και αποθήκευση.
# Slice with columns name df[, c('ID', 'store')]
Παραγωγή:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Προσθήκη στήλης στο πλαίσιο δεδομένων
Μπορείτε επίσης να προσαρτήσετε μια στήλη σε ένα πλαίσιο δεδομένων. Πρέπει να χρησιμοποιήσετε το σύμβολο $ για να προσαρτήσετε τη μεταβλητή R του πλαισίου δεδομένων και να προσθέσετε μια στήλη σε ένα πλαίσιο δεδομένων στο R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Παραγωγή:
## ID items store price quantity ## 1 10 book TRUE 2.5 10 ## 2 20 pen FALSE 8.0 35 ## 3 30 textbook TRUE 10.0 40 ## 4 40 pencil_case FALSE 7.0 5
Σημείωση: Ο αριθμός των στοιχείων στο διάνυσμα πρέπει να είναι ίσος με τον αριθμό των στοιχείων στο πλαίσιο δεδομένων. Εκτελώντας την ακόλουθη πρόταση για προσθήκη στήλης στο πλαίσιο δεδομένων R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Δίνει σφάλμα:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Επιλέξτε μια στήλη ενός πλαισίου δεδομένων
Μερικές φορές, χρειάζεται να αποθηκεύσουμε μια στήλη ενός πλαισίου δεδομένων για μελλοντική χρήση ή να εκτελέσουμε λειτουργία σε μια στήλη. Μπορούμε να χρησιμοποιήσουμε το σύμβολο $ για να επιλέξουμε τη στήλη από ένα πλαίσιο δεδομένων.
# Select the column ID df$ID
Παραγωγή:
## [1] 1 2 3 4
Υποορίστε ένα πλαίσιο δεδομένων
Στην προηγούμενη ενότητα, επιλέξαμε μια ολόκληρη στήλη χωρίς όρους. Είναι δυνατόν να υποσύνολο με βάση το αν μια συγκεκριμένη συνθήκη ήταν αληθής ή όχι.
Χρησιμοποιούμε τη συνάρτηση subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Θέλουμε να επιστρέψουμε μόνο τα είδη με τιμή άνω των 10, μπορούμε να κάνουμε:
# Select price above 5 subset(df, subset = price > 5)
Παραγωγή:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7