In questo articolo mi sono occupato di definire le tabelle a doppia entrata e descrivere dettagliatamente gli elementi che le compongono. Se sei atterrato su questa pagina è perché il tuo scopo è quello di realizzare una tabella a doppia entrata in R e interpretare i numeri che essa contiene al fine di condurre delle analisi statistiche sui tuoi dati o di risolvere un esercizio. Continua a leggere per sapere come fare oppure guarda il video YouTube che ho registrato.
Il comando R che produce una tabella a doppia entrata è table e la sintassi è la seguente:
table(variabile1, variabile2)
dove variabile1 e variabile2 sono rispettivamente le variabili di riga e colonna. Ti mostro subito un esempio prendendo in considerazione il dataset SLID contenuto nella library car.
library(car)
View(SLID)
Questo dataframe come vedi è formato da 5 variabili: il salario per ogni ora di lavoro, il numero di anni di istruzione, l’età, il sesso e la lingua parlata. Le modalità di quest’ultima sono English, French e others. Voglio incrociare la lingua parlata e il sesso. Genero dunque la tabella di frequenza memorizzandola in un oggetto R:
tab_freq <- table(SLID\$language, SLID\$sex)
tab_freq
Vediamo come leggere la tabella sopra. Sulle righe compare la variabile language mentre sulle colonne il sesso. All’interno ci sono le frequenze assolute. Ad esempio ci sono 2999 femmine di madrelingua inglese mentre ci sono 235 maschi di madrelingua francese. Cos’altro ci posso fare con questa tabella?
Totali di riga e colonna di una tabella a doppia entrata
Posso calcolare i totali di riga e di colonna con il comando addmargins.
addmargins(tab_freq)
Osserva l’output qui sopra: sono state aggiunte una riga e una colonna contenente i totali ai margini della precedente tabella. Questo è utile per contare il numero totale di persone di madrelingua inglese (5716) oppure il numero totale di maschi (3479). Osserva inoltre il numero presente all'estremità in basso a destra (7304): è il totale assoluto, ossia il numero totale di osservazioni valide presenti nel dataset, quindi senza contare i valori mancanti.
Frequenze percentuali di una tabella a doppia entrata
Se desideri visualizzare le frequenze percentuali invece che quelle assolute utilizza il comando prop.table.
prop.table(tab_freq)
Qui hai, per esempio, che il 41% (0.4105...) circa è femmina e parla inglese oppure che il 3% (0.0358...) circa è maschio e parla francese e cosi via… È chiaro che queste percentuali sono state calcolate sul totale assoluto (7304). Infatti, ad esempio, 0.4105... è stato ottenuto facendo 2999/7304 mentre invece 0.0358... viene fuori dal rapporto 262/7304.
Alcune volte invece è necessario calcolare le percentuali sul totale di riga e di colonna per estrapolare informazioni differenti dalle precedenti.
Frequenze percentuali di riga
Per ottenere la tabella di frequenza con le percentuali di riga devi aggiungere 1 come secondo parametro nel comando prop.table:
prop.table(tab_freq,1)
In questo caso puoi dire, ad esempio, che il 52,71% circa dei francesi sono femmine mentre il restante 47,28% circa sono maschi.
Frequenze percentuali di colonna
prop.table(tab_freq,2)
Qui ti commento solo la prima colonna della precedente tabella, lo stesso potrai fare con la seconda: tra tutte le femmine, il 78% circa sono inglesi, il 6% circa sono francesi e le restanti, ossia il 14% circa sono di altre nazionalità. È evidente quindi che la tra le donne la lingua più parlata è l'inglese.