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

Aggiungi un commento

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