Come utilizzare la funzione dcast di data.table in r


È possibile utilizzare la funzione dcast del pacchetto data.table in R per rimodellare un frame di dati da un formato lungo a un formato ampio.

Questa funzione è particolarmente utile quando si desidera riassumere variabili specifiche in un frame di dati, raggruppate per altre variabili.

I seguenti esempi mostrano come utilizzare in pratica la funzione dcast con il seguente frame di dati in R:

 library (data.table)

#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(18, 13, 10, 12, 16, 25, 24, 31),
                 assists=c(9, 8, 8, 5, 12, 15, 10, 7))

#convert data frame to data table
dt <- setDT(df)

#view data table
dt

   team position points assists
1: AG 18 9
2: AG 13 8
3:AF 10 8
4:AF 12 5
5: BG 16 12
6: BG 25 15
7: BF 24 10
8: BF 31 7

Esempio 1: calcolare la metrica per una variabile, raggruppata per altre variabili

Il codice seguente mostra come utilizzare la funzione dcast per calcolare il valore del punto medio, raggruppato per variabili di squadra e posizione :

 library (data.table)

#calculate mean points value by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = ' points ')

#view results
dt_new

   team position.
1:AF 11.0
2: AG 15.5
3: BF 27.5
4: BG 20.5

Esempio 2: calcolare più metriche per una variabile, raggruppate per altre variabili

Il codice seguente mostra come utilizzare la funzione dcast per calcolare il valore del punto medio e il valore del punto massimo, raggruppati per variabili di squadra e posizione :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = list(mean, max), 
                value. var = ' points ')

#view results
dt_new

   team position points_mean points_max
1:AF 11.0 12
2: AG 15.5 18
3: BF 27.5 31
4: BG 20.5 25

Esempio 3: calcolare la metrica per più variabili, raggruppate per altre variabili

Il codice seguente mostra come utilizzare la funzione dcast per calcolare il valore medio del punto e il valore medio dell’assist , raggruppati per variabili di squadra e posizione :

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = c(' points ', ' assists '))

#view results
dt_new

   team position points assists
1:AF 11.0 6.5
2: AG 15.5 8.5
3: BF 27.5 8.5
4: BG 20.5 13.5

Risorse addizionali

Le esercitazioni seguenti forniscono informazioni aggiuntive sulle tabelle dati:

data.table vs data frame in R: tre differenze chiave
Come filtrare una data.table in R
Come utilizzare rbindlist in R per creare una tabella dati da più file

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *