Come creare una tabella incrociata utilizzando dplyr (con esempi)
È possibile utilizzare la seguente sintassi di base per produrre una tabella incrociata utilizzando le funzioni dei pacchetti dplyr e Tidyr in R:
df %>% group_by (var1, v ar2) %>% tally () %>% spread (var1,n)
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: creare una tabella incrociata di base
Supponiamo di avere il seguente frame di dati in R:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'C', 'G', 'F', 'F', 'C'), dots=c(7, 7, 8, 11, 13, 15, 19, 13)) #view data frame df team position points 1 AG 7 2 AG 7 3AF 8 4 AC 11 5 BG 13 6 BF 15 7 BF 19 8 BC 13
Possiamo utilizzare la seguente sintassi per creare una tabella incrociata per le variabili “team” e “posizione”:
library (dplyr) library (tidyr) #produce crosstab df %>% group_by (team, position) %>% tally () %>% spread (team, n) # A tibble: 3 x 3 position AB 1 C 1 1 2 F 1 2 3 G 2 1
Ecco come interpretare i valori della tabella incrociata:
- C’è 1 giocatore che occupa la posizione “C” e appartiene alla squadra “A”
- C’è 1 giocatore che occupa la posizione “C” e appartiene alla squadra “B”
- C’è 1 giocatore che occupa la posizione “F” e appartiene alla squadra “A”
- Ci sono 2 giocatori che hanno una posizione “F” e appartengono alla squadra “B”
- Ci sono 2 giocatori che hanno una posizione “G” e appartengono alla squadra “A”
- C’è 1 giocatore che occupa la posizione “G” e appartiene alla squadra “B”
Tieni presente che possiamo modificare le righe e le colonne della tabella a campi incrociati modificando la variabile utilizzata nella funzione spread() :
library (dplyr) library (tidyr) #produce crosstab with 'position' along columns df %>% group_by (team, position) %>% tally () %>% spread (position, n) # A tibble: 2 x 4 # Groups: team [2] team CFG 1 A 1 1 2 2 B 1 2 1
Correlato: Come utilizzare la funzione Diffondi in Tidyr
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre funzioni comuni in dplyr:
Come calcolare le frequenze relative utilizzando dplyr
Come selezionare le colonne per indice utilizzando dplyr
Come eliminare righe utilizzando dplyr