Établir un tableau de contingents - Croiser des variables - Proportions

en langage R

L'essentiel de cette page

Il est important (essentiel même) d'établir des comptages en croisant des catégories et de convertir cela rapidement en proportions : table(), ftable() et prop.table() sont là pour cela !

1- Établir un contingent pour une seule variable (numérique ou de catégories) avec table()

data(iris) # Charge des données qui décrivent des iris
table(iris$Species) # Compte les iris de chaque espèce

setosa versicolor virginica

50 50 50

Remarque : on peut aussi faire des regroupement à l'échelle d'une variable avec ifelse()

ifelse (iris[,1]>5,"grand","petit")  # Trier les valeurs entre grandes et petites.

On peut aussi imbriquer :

ifelse (iris[,1]>6,"grand",ifelse(iris[,1]<5,"petit","moyen"))  

2- Établir un contingent pour deux variables (numérique ou de catégories) avec table()

data(mtcars) # Charge des données qui décrivent des voitures
table(mtcars$cyl,mtcars$carb) # Compter les voitures en croisant cylindré et carburateurs
    1 2 3 4 6 8
  4 5 6 0 0 0 0
  6 2 0 0 4 1 0
  8 0 4 3 6 0 1
 Cylindré vs Nombre de carbu

Visualiser un contingent par un mosaicplot()

mosaicplot(table(mtcars$cyl,mtcars$carb) ,col=1:10, main=NULL, cex.axis=0.8)

3- Établir un contingent pour n variables avec ftable()

ftable(mtcars[,c(2,10,11)])
         carb 1 2 3 4 6 8
cyl gear                 
4   3         1 0 0 0 0 0
    4         4 4 0 0 0 0
    5         0 2 0 0 0 0
6   3         2 0 0 0 0 0
    4         0 0 0 4 0 0
    5         0 0 0 0 1 0
8   3         0 4 3 5 0 0
    4         0 0 0 0 0 0
    5         0 0 0 1 0 1

4- Convertir un contingent en proportions avec prop.table()

Mise en proportions de l'ensemble du table (data.frame ou matrice) :

prop.table(  ftable(mtcars[,c(2,10)]) )
    gear       3       4       5
cyl                             
4        0.03125 0.25000 0.06250
6        0.06250 0.12500 0.03125
8        0.37500 0.00000 0.06250

Mise en proportions de l'ensemble du table (data.frame ou matrice) ligne par ligne :

prop.table(  ftable(mtcars[,c(2,10)]) ,1)
    gear          3          4          5
cyl                                      
4        0.09090909 0.72727273 0.18181818
6        0.28571429 0.57142857 0.14285714
8        0.85714286 0.00000000 0.14285714

Mise en proportions de l'ensemble du table (data.frame ou matrice) colonne par colonne :

prop.table(  ftable(mtcars[,c(2,10)]) ,2)
    gear          3          4          5
cyl                                      
4        0.06666667 0.66666667 0.40000000
6        0.13333333 0.33333333 0.20000000
8        0.80000000 0.00000000 0.40000000