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.

Taglia frame dati

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.

Taglia frame dati

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