R Data Frame: come creare, aggiungere, selezionare e sottoinsieme
Cos'è un frame di dati?
A Frame dati è un elenco di vettori che hanno la stessa lunghezza. Una matrice contiene solo un tipo di dati, mentre un frame di dati accetta diversi tipi di dati (numerici, caratteri, fattori, ecc.).
Come creare un frame di dati
Possiamo creare un dataframe in R passando la variabile a,b,c,d nella funzione data.frame(). Possiamo creare R dataframe e denominare le colonne con name() e specificare semplicemente il nome delle variabili.
data.frame(df, stringsAsFactors = TRUE)
argomenti:
- df: Può essere una matrice da convertire come frame di dati o una raccolta di variabili da unire
- stringsAsFactors: converte la stringa in fattore per impostazione predefinita
Possiamo creare un dataframe in R per il nostro primo set di dati combinando quattro variabili della stessa lunghezza.
# 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
Produzione:
## 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
Possiamo vedere che le intestazioni delle colonne hanno lo stesso nome delle variabili. Possiamo cambiare il nome della colonna in R con la funzione nomi(). Controlla l'esempio di creazione di dataframe di R di seguito:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Produzione:
## 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)
Produzione:
## '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
Per impostazione predefinita, il frame di dati restituisce variabili stringa come fattore.
Taglia frame dati
È possibile tagliare i valori di un frame di dati. Selezioniamo le righe e le colonne da riportare tra parentesi precedute dal nome del data frame.
Un frame di dati è composto da righe e colonne, df[A, B]. A rappresenta le righe e B le colonne. Possiamo suddividere specificando le righe e/o le colonne.
Dalla figura 1, la parte sinistra rappresenta il righe, e la parte destra è la colonne. Si noti che il simbolo: significa a. Ad esempio, 1:3 intende selezionare i valori da 1 a 3.
Nel diagramma seguente mostriamo come accedere alle diverse selezioni del frame dati:
- La freccia gialla seleziona il fila 1 in colonna 2
- La freccia verde seleziona il righe da 1 a 2
- La freccia rossa seleziona il colonna 1
- La freccia blu seleziona il righe Dal 1 al 3 e colonne da 3 a 4
Nota che, se lasciamo vuota la parte sinistra, R selezionerà tutte le righe. Per analogia, se lasciamo vuota la parte destra, R selezionerà tutte le colonne.
Possiamo eseguire il codice nella console:
## Select row 1 in column 2 df[1,2]
Produzione:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Produzione:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Produzione:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Produzione:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
È anche possibile selezionare le colonne con i relativi nomi. Ad esempio, il codice seguente estrae due colonne: ID e store.
# Slice with columns name df[, c('ID', 'store')]
Produzione:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Aggiungi una colonna al frame di dati
Puoi anche aggiungere una colonna a un frame di dati. È necessario utilizzare il simbolo $ per aggiungere la variabile R del dataframe e aggiungere una colonna a un dataframe in R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Produzione:
## 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
Nota: il numero di elementi nel vettore deve essere uguale al numero di elementi nel data frame. Eseguendo la seguente istruzione per aggiungere una colonna al data frame R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Dà errore:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Seleziona una colonna di un frame di dati
A volte è necessario memorizzare una colonna di un frame di dati per un utilizzo futuro o eseguire operazioni su una colonna. Possiamo usare il segno $ per selezionare la colonna da un frame di dati.
# Select the column ID df$ID
Produzione:
## [1] 1 2 3 4
Sottoimposta un frame di dati
Nella sezione precedente abbiamo selezionato un'intera colonna senza condizione. È possibile sottoinsieme in base al fatto che una determinata condizione fosse vera o meno.
Usiamo la funzione subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Vogliamo restituire solo gli articoli con prezzo superiore a 10, possiamo fare:
# Select price above 5 subset(df, subset = price > 5)
Produzione:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7