Statistiques descriptives en R : résumer et décrire vos données

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.

Date de publication

23 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Les statistiques descriptives résument un jeu de données par quelques nombres et un graphique — la première étape avant tout test.
  • Tendance centrale : 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).
  • Variabilité : range()/min()/max(), l’écart interquartile IQR(), la variance var() et l’écart-type sd().
  • La fonction pipe-friendly rstatix::get_summary_stats() calcule tout cela d’un coup, et par groupe avec group_by().
  • Associez les nombres à une boîte à moustaches ou un histogramme — une table de résumé et une image racontent ensemble l’histoire.

Introduction

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 :

  • Mesures de tendance centrale — où les données se regroupent : la moyenne, la médiane et le mode.
  • Mesures de variabilité (dispersion) — son degré de dispersion : l’étendue, l’écart interquartile, la variance et l’écart-type.

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.

Tendance centrale : moyenne, médiane, mode

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 :

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

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.

Astuce

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.

Variabilité : étendue, IQR, variance, SD

x <- iris$Sepal.Length

range(x)    # min and max
[1] 4.3 7.9
IQR(x)      # interquartile range (Q3 - Q1), robust spread
[1] 1.3
var(x)      # variance
[1] 0.6856935
sd(x)       # standard deviation (sqrt of variance)
[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.

Tout d’un coup : get_summary_stats()

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") :

library(rstatix)

iris %>% get_summary_stats(Sepal.Length, type = "common")
# 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

Résumés par groupe

La vraie puissance est par groupe — passez d’abord group_by() dans le pipe pour résumer chaque espèce d’un coup :

library(rstatix)

iris %>%
  group_by(Species) %>%
  get_summary_stats(Sepal.Length, type = "mean_sd")
# 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.

Visualiser le résumé

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 :

library(ggpubr)

ggboxplot(iris, x = "Species", y = "Sepal.Length",
          add = c("mean", "jitter"), color = "Species", palette = "jco",
          ylab = "Sepal length", xlab = "Species")

A boxplot of iris sepal length by species with the mean marked and individual points jittered; virginica is highest, setosa lowest, with clear separation.

Essayez en direct

Résumez une autre variable ou un autre jeu de données. Le bac à sable démarre au premier Run.

🟢 Avec un agent IA

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 →

Problèmes courants

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().

Questions fréquentes

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.

Testez vos connaissances

  1. Exécutez-le. Dans la cellule interactive, calculez la moyenne et l’écart-type de iris$Petal.Length, puis un get_summary_stats() par groupe selon l’espèce. Complétez le blanc.
  2. Conceptuel. Pour une variable de revenu fortement asymétrique à droite, quelle mesure de tendance centrale décrit le mieux la valeur « typique », et pourquoi ?

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.

iris %>% group_by(Species) %>% get_summary_stats(Petal.Length, type = "mean_sd")
#> one row per species with n, mean and sd.

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.

Conclusion

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.

Leçons connexes

Cette page vous a-t-elle été utile ?

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.

Commencer gratuitement →

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

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

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.

Partager cette pageXLinkedInRedditHN
Note

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.

Réutilisation

Citation

BibTeX
@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}
}
Veuillez citer ce travail comme suit :
“Statistiques descriptives en R : résumer et décrire vos données.” 2026. June 23. https://www.datanovia.com/learn/biostatistics/assumptions/descriptive-statistics-in-r.