Come creare rapidamente tabelle pivot in r
In Excel, le tabelle pivot forniscono un modo semplice per raggruppare e riepilogare i dati.
Ad esempio, se disponiamo del seguente set di dati in Excel, possiamo utilizzare una tabella pivot per riepilogare rapidamente le vendite totali per regione:
Questo ci dice:
- La regione A ha registrato 51 vendite totali
- La regione B ha registrato 85 vendite totali
- La regione C ha raggiunto 140 vendite totali
Oppure potremmo riassumere con un altro parametro come le vendite medie per regione:
Si scopre che possiamo creare rapidamente tabelle pivot simili in R utilizzando le funzioni group_by() e summary() dal pacchetto dplyr .
Questo tutorial fornisce diversi esempi su come eseguire questa operazione.
Esempio: creare tabelle pivot in R
Innanzitutto, creiamo lo stesso set di dati in R che abbiamo utilizzato negli esempi precedenti da Excel:
#create data frame df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'), device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'), sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32)) #view data frame df region device sales 1AX 12 2AX18 3 AY 21 4 BX22 5 BY 34 6 BY 29 7 CX 38 8CX36 9 CY 34 10 CY 32
Successivamente, carichiamo il pacchetto dplyr e utilizziamo le funzioni group_by() e summary() per raggruppare per regione e trovare la somma delle vendite per regione:
library (dplyr) #find sum of sales by region df %>% group_by (region) %>% summarize (sum_sales = sum (sales)) # A tibble: 3 x 2 region sum_sales 1 to 51 2 B 85 3 C 140
Possiamo vedere che questi numeri corrispondono ai numeri mostrati nell’esempio introduttivo di Excel.
Possiamo anche calcolare le vendite medie per regione:
#find average sales by region df %>% group_by (region) %>% summarize (mean_sales = mean (sales)) # A tibble: 3 x 2 region mean_sales 1 to 17 2 B 28.3 3 C 35
Ancora una volta, questi numeri corrispondono ai numeri mostrati nell’esempio Excel precedente.
Nota che possiamo anche raggruppare per più variabili. Ad esempio, potremmo trovare la somma delle vendite raggruppate per regione e tipo di dispositivo:
#find sum of sales by region and device type df %>% group_by (region, device) %>% summarize (sum_sales = sum (sales)) # A tibble: 6 x 3 # Groups: region [3] region device sum_sales 1AX30 2 AY 21 3 BX22 4 BY 63 5 CX 74 6 CY 66
Risorse addizionali
Come eseguire un CERCA.VERT (simile a Excel) in R
La guida completa: come raggruppare e riepilogare i dati in R