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.

Slice Data Frame

Στο παρακάτω διάγραμμα παρουσιάζουμε τον τρόπο πρόσβασης σε διαφορετικές επιλογές του πλαισίου δεδομένων:

  • Το κίτρινο βέλος επιλέγει το σειρά 1 σε στήλη 2
  • Το πράσινο βέλος επιλέγει το σειρές από 1 έως 2
  • Το κόκκινο βέλος επιλέγει το στήλη 1
  • Το μπλε βέλος επιλέγει το σειρές 1 έως 3 και στήλες από 3 έως 4

Σημειώστε ότι, αν αφήσουμε το αριστερό μέρος κενό, το R θα επιλέξει όλες οι σειρές. Κατ' αναλογία, αν αφήσουμε το δεξί μέρος κενό, το R θα επιλέξει όλες οι στήλες.

Slice Data Frame

Μπορούμε να εκτελέσουμε τον κώδικα στην κονσόλα:

## 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