data("titanic.raw", package = "datarium")
table(titanic.raw$Survived) # counts
No Yes
1490 711
round(prop.table(table(titanic.raw$Survived)), 2) # proportions
No Yes
0.68 0.32
Résumez des données catégorielles — tableaux de fréquences et de contingence, proportions et marges — et visualisez-les avec des diagrammes en barres, circulaires et en mosaïque
Apprenez à résumer des données catégorielles en R — construisez des tableaux de fréquences à une entrée et des tableaux de contingence à deux (ou plusieurs) entrées avec table() et xtabs(), ajoutez proportions et marges avec prop.table() et addmargins(), et visualisez les effectifs avec des diagrammes en barres, circulaires/en anneau, des balloon plots et des graphiques en mosaïque. La première étape avant tout test catégoriel.
23 juin 2026
7 juillet 2026
table() ou xtabs() ; ajoutez les proportions avec prop.table() et les totaux par ligne / colonne / général avec addmargins().Avant de tester des données catégorielles, décrivez-les : combien d’observations tombent dans chaque catégorie, et comment les catégories de deux variables se croisent. Les résumés sont des effectifs — un tableau de fréquences à une entrée pour une seule variable, et un tableau de contingence à deux (ou plusieurs) entrées pour plusieurs. Cette leçon les construit avec R de base et les visualise, en utilisant les données de survie Titanic intégrées (titanic.raw).
table() compte chaque catégorie ; enveloppez-le dans prop.table() pour obtenir les proportions :
No Yes
1490 711
No Yes
0.68 0.32
Environ 32 % des 2201 personnes ont survécu.
Croisez deux variables avec table() ou xtabs() — ici la survie selon la classe des passagers :
Survived
Class No Yes
1st 122 203
2nd 167 118
3rd 528 178
Crew 673 212
Ajoutez les marges (totaux par ligne / colonne / général) et les proportions :
Survived
Class No Yes Sum
1st 122 203 325
2nd 167 118 285
3rd 528 178 706
Crew 673 212 885
Sum 1490 711 2201
Survived
Class No Yes
1st 0.38 0.62
2nd 0.59 0.41
3rd 0.75 0.25
Crew 0.76 0.24
Les proportions par ligne sont le taux de survie au sein de chaque classe — première classe ≈ 62 %, équipage ≈ 24 %.
xtabs() et ftable() (tableaux à plat) gèrent trois variables ou plus — la survie selon la classe et le sexe :
Un diagramme en barres des effectifs, groupé par survie :

Un balloon plot montre tout le tableau d’un coup d’œil — la taille du point = l’effectif :

Un graphique en mosaïque (R de base) montre les proportions sous forme d’aires de tuiles — la largeur de chaque classe reflète sa taille, la subdivision montre son taux de survie :

Un diagramme circulaire ou en anneau convient aux parts d’une seule variable :
Tabulez et tracez un autre couple de variables — la survie selon le sexe. Le bac à sable démarre au premier Run.
Demandez à Prova « résume mes données catégorielles — construis le tableau de contingence avec les proportions et les marges, et trace-le » — elle répond avec du code que vous pouvez exécuter sur vos propres données. The runtime is the judge. Demander à Prova →
Vous voulez des proportions mais vous obtenez des effectifs. Enveloppez le tableau dans prop.table(). Utilisez margin = 1 pour les proportions par ligne, margin = 2 pour les proportions par colonne, et aucune marge pour les proportions globales.
Votre variable est numérique mais en réalité catégorielle. Convertissez-la d’abord en facteur (mydata$x <- factor(mydata$x)) pour que table() traite chaque valeur comme une catégorie.
Un tableau à plusieurs entrées est difficile à lire. Utilisez ftable() pour l’aplatir en une mise en page lisible, ou un mosaicplot() pour voir les proportions visuellement.
Utilisez table(var1, var2) ou xtabs(~ var1 + var2, data = mydata) pour croiser deux variables catégorielles en un tableau de contingence d’effectifs. Ajoutez prop.table() pour les proportions et addmargins() pour les totaux par ligne / colonne / général.
Enveloppez le tableau dans prop.table() : sans margin, vous obtenez les proportions globales ; margin = 1 donne les proportions par ligne (chaque ligne somme à 1), margin = 2 donne les proportions par colonne. Multipliez par 100 pour des pourcentages.
Un diagramme en barres pour comparer les effectifs de catégories (groupé ou empilé pour deux variables), un diagramme circulaire/en anneau pour les parts d’une variable, un balloon plot pour montrer tout un tableau de contingence d’un coup d’œil, et un graphique en mosaïque pour montrer les proportions sous forme d’aires. Choisissez selon le nombre de variables que vous présentez.
prop.table() utilisez-vous ?Remplissez le blanc avec 1 pour les proportions par ligne (taux au sein de chaque sexe). Pour la question 2, la classe est la variable de ligne, donc vous voulez la même marge.
Pour la question 2 : utilisez margin = 1 (proportions par ligne) — avec la classe comme variable de ligne, cela donne le taux de survie au sein de chaque classe, ce qui est ce que vous voulez. margin = 2 donnerait plutôt, parmi les survivants et les non-survivants, la part de chaque classe.
Une fois le tableau décrit, testez-le :
Vous savez maintenant décrire des données catégorielles en R : construire des tableaux de fréquences et de contingence avec table() / xtabs(), ajouter des proportions (prop.table()) et des marges (addmargins()), aplatir les tableaux à plusieurs entrées avec ftable(), et visualiser avec des diagrammes en barres, circulaires/en anneau, des balloon plots et des graphiques en mosaïque. C’est la première étape, essentielle — l’image du tableau que vous emmenez ensuite vers un test du chi-deux ou un autre test catégoriel.
Prouvez que vous savez le faire. Maîtrisez toute la série Analyse catégorielle en R — suivez votre parcours, construisez des projets et obtenez un certificat.
Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.
dès 15 $/mois facturé annuellement
✓ Vous êtes Pro — continuez. The runtime is the judge.
Prêt à passer à la vitesse supérieure ?
Recevez les nouvelles leçons R & Python par e-mail
Pratique, reproductible, sans spam. Désinscription à tout moment.
Double opt-in. Nous ne partageons jamais votre e-mail.
Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — modifiez n’importe quel bloc et faites Run pour le reproduire vous-même.
@online{2026,
author = {},
title = {Statistiques descriptives pour données catégorielles en R :
tableaux de contingence},
date = {2026-06-23},
url = {https://www.datanovia.com/learn/biostatistics/categorical/categorical-descriptive-statistics-in-r},
langid = {fr}
}