x <- iris$Sepal.Length
mean(x) # arithmetic mean[1] 5.843333
median(x) # middle value (robust to outliers)[1] 5.8
# mode: the most frequent value (base R)
freq <- table(x)
as.numeric(names(freq)[which.max(freq)])[1] 5
Tendance centrale, variabilité et résumés par groupe — moyenne, médiane, mode, étendue, IQR, variance et SD — la méthode moderne avec rstatix et R de base
Apprenez à calculer les statistiques descriptives en R — les mesures de tendance centrale (moyenne, médiane, mode) et de variabilité (étendue, écart interquartile, variance, écart-type) — avec R de base et la fonction pipe-friendly get_summary_stats() de rstatix, y compris les résumés par groupe et un aperçu visuel.
23 juin 2026
7 juillet 2026
mean(), median(), et le mode (la valeur la plus fréquente — pas de fonction de base, alors calculez-le à partir d’une table de fréquences).range()/min()/max(), l’écart interquartile IQR(), la variance var() et l’écart-type sd().rstatix::get_summary_stats() calcule tout cela d’un coup, et par groupe avec group_by().Les statistiques descriptives décrivent et résument vos données avant tout test — la forme d’une distribution, où elle est centrée, et son degré de dispersion. Elles se divisent en deux familles :
Cette leçon calcule chacune avec R de base et avec la fonction pipe-friendly rstatix get_summary_stats(), en utilisant le jeu de données intégré iris.
La moyenne et la médiane ont des fonctions en R de base ; le mode (la valeur la plus fréquente) n’en a pas, alors nous le lisons à partir d’une table de fréquences :
[1] 5.843333
[1] 5.8
[1] 5
La moyenne (5.84) et la médiane (5.80) sont proches, ce qui indique une distribution assez symétrique ; le mode est la valeur unique la plus courante.
Moyenne vs médiane. La moyenne utilise chaque valeur, elle est donc tirée par les valeurs aberrantes ; la médiane est la valeur centrale, elle est donc robuste. Lorsqu’elles divergent fortement, la distribution est asymétrique — un signal pour vérifier la normalité ou envisager une transformation.
[1] 4.3 7.9
[1] 1.3
[1] 0.6856935
[1] 0.8280661
L’écart-type (0.83) est la mesure de dispersion la plus rapportée — la distance typique d’une valeur à la moyenne, dans les unités d’origine. L’IQR (les 50 % centraux) en est la contrepartie robuste, insensible aux valeurs extrêmes.
rstatix::get_summary_stats() renvoie les résumés courants dans une seule table tidy — choisissez l’ensemble avec type ("common", "mean_sd", "median_iqr", "full") :
# A tibble: 1 × 10
variable n min max median iqr mean sd se ci
<fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Sepal.Length 150 4.3 7.9 5.8 1.3 5.84 0.828 0.068 0.134
La vraie puissance est par groupe — passez d’abord group_by() dans le pipe pour résumer chaque espèce d’un coup :
# A tibble: 3 × 5
Species variable n mean sd
<fct> <fct> <dbl> <dbl> <dbl>
1 setosa Sepal.Length 50 5.01 0.352
2 versicolor Sepal.Length 50 5.94 0.516
3 virginica Sepal.Length 50 6.59 0.636
C’est la table derrière chaque comparaison de groupes — les moyennes et les SD que vous rapportez aux côtés d’un t-test ou d’une ANOVA.
Les nombres et une image ensemble. Une boîte à moustaches montre la médiane, l’IQR et les valeurs aberrantes par groupe ; ajoutez la moyenne et des points dispersés :
Résumez une autre variable ou un autre jeu de données. Le bac à sable démarre au premier Run.
Demandez à Prova « résume mes données — donne-moi la moyenne, la médiane, le SD et l’IQR pour chaque groupe, et un graphique pour les accompagner » — elle répond avec du code rstatix que vous pouvez exécuter sur vos propres données. The runtime is the judge. Demander à Prova →
Il n’existe pas de fonction mode() pour la valeur la plus fréquente. La fonction mode() de R de base renvoie le type de stockage d’un objet, pas le mode statistique. Calculez le mode statistique à partir d’une table de fréquences : names(which.max(table(x))).
Les valeurs manquantes donnent NA. mean(x), sd(x) et consorts renvoient NA si x contient des NA. Ajoutez na.rm = TRUE (par ex. mean(x, na.rm = TRUE)) ; get_summary_stats() gère les valeurs manquantes pour vous.
Vous avez rapporté la variance au lieu du SD. La variance est en unités au carré ; l’écart-type (sa racine carrée) est dans les unités d’origine et c’est ce que les lecteurs attendent — rapportez sd().
Utilisez rstatix : data %>% group_by(grouping_var) %>% get_summary_stats(variable, type = "mean_sd"). Elle renvoie une ligne par groupe avec les statistiques choisies (effectif, moyenne, SD, médiane, IQR, etc.). C’est la manière standard de produire la table descriptive qui accompagne un t-test ou une ANOVA.
La moyenne est la moyenne arithmétique (somme ÷ effectif) et utilise chaque valeur, de sorte que les valeurs aberrantes la tirent. La médiane est la valeur centrale une fois les données triées, elle est donc robuste aux valeurs aberrantes et à l’asymétrie. Lorsqu’elles diffèrent beaucoup, la distribution est asymétrique — la médiane est le meilleur résumé du « typique ».
Il n’existe pas de fonction intégrée pour le mode statistique (mode() renvoie le type de l’objet). Construisez une table de fréquences et prenez la plus fréquente : names(which.max(table(x))). Pour un vecteur numérique, enveloppez-le dans as.numeric().
Rapportez l’écart-type dans la plupart des contextes — c’est la racine carrée de la variance et il est exprimé dans les unités d’origine, il est donc directement interprétable comme la distance typique à la moyenne. La variance (unités au carré) est surtout une quantité intermédiaire.
iris$Petal.Length, puis un get_summary_stats() par groupe selon l’espèce. Complétez le blanc.Complétez le blanc avec Species. Pour la question 2, rappelez-vous quelle mesure est robuste à la longue traîne d’une distribution asymétrique.
Pour la question 2 : la médiane. Le revenu est fortement asymétrique à droite (quelques très hauts revenus), ce qui gonfle la moyenne ; la médiane (la valeur centrale) n’est pas affectée par la longue traîne et représente mieux la personne typique.
Vous savez maintenant calculer les statistiques descriptives en R : la tendance centrale (mean(), median(), et le mode à partir d’une table de fréquences) et la variabilité (range(), IQR(), var(), sd()), ou toutes d’un coup — et par groupe — avec rstatix::get_summary_stats(). Associez la table à une boîte à moustaches ou un histogramme, et vous obtenez le résumé qui ouvre chaque analyse et accompagne chaque test.
Prouvez que vous savez le faire. Maîtrisez toute la série Hypothèses statistiques 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 en R : résumer et décrire vos
données},
date = {2026-06-23},
url = {https://www.datanovia.com/learn/biostatistics/assumptions/descriptive-statistics-in-r},
langid = {fr}
}