Accéder au contenu principal

R median() Fonction : Trouver la valeur médiane

Apprenez à trouver rapidement la valeur moyenne de vos données à l'aide de la fonction R median(). Découvrez des astuces pour traiter les valeurs manquantes et regrouper les données par catégories.
Actualisé 20 juin 2025  · 4 min de lecture

La recherche de la médiane est un élément fondamental de l'analyse des données, en particulier lorsque vous avez affaire à des distributions asymétriques ou à des valeurs aberrantes. 

Dans R, la fonction median() offre un moyen simple et intégré de calculer une mesure très importante (non paramétrique !) de la tendance centrale. Je vous montrerai les ficelles du métier :

Que fait R median() ?

La fonction median() examine vos données numériques et renvoie (une interprétation de) la valeur centrale.

median(numeric_vector)

Ici, numeric_vector fait référence à un tableau numérique ou à un objet similaire, tel qu'une colonne dans une base de données.

Un exemple simple avec R median()

Voyons cela en action. Supposons que vous disposiez d'un petit vecteur de nombres :

sales_numbers <- c(3, 5, 8, 2, 7)

median(sales_numbers)

R trie automatiquement les nombres (2, 3, 5, 7, 8), puis renvoie 5. C'est la valeur qui se trouve au centre.

Mais que se passe-t-il si votre vecteur a un nombre pair d'éléments, comme dans l'exemple suivant ?

quarterly_sales <- c(10, 4, 7, 2)

median(quarterly_sales)

Ici, R effectue un tri jusqu'à (2, 4, 7, 10), puis calcule la moyenne des deux nombres du milieu (4 et 7), ce qui donne 5.5.

Si votre jeu de données contient un nombre impair de valeurs, il choisit simplement celle qui se trouve au centre. Pour un nombre pair de valeurs, median() calcule la moyenne des deux nombres du milieu.

Ainsi, sous le capot, median() fait le tri pour vous, ce qui est très pratique.

Traitement des valeurs NA avec median()

Au fur et à mesure que vos ensembles de données s'accroissent, il est fréquent de rencontrer des valeurs manquantes. Ces éléments peuvent fausser vos calculs si vous n'y prenez pas garde. Par défaut, median() renvoie NA si des valeurs manquantes sont présentes dans votre vecteur. (Toutes les valeurs manquantes). Voyons ce qu'il en est :

monthly_sales <- c(6, 3, NA, 9)

median(monthly_sales)

Remarquez que le résultat est NA. Pour éviter cela, ajoutez l'argument na.rm = TRUE. Cela indique à R de supprimer les valeurs manquantes avant de calculer la médiane :

median(monthly_sales, na.rm = TRUE)

Cette fois, vous obtiendrez 6 (la médiane des valeurs restantes (3, 6, et 9)). Gardez un œil sur ces NA, car ils peuvent se glisser dans vos données et fausser votre analyse si vous les oubliez.

Recherche de la médiane par groupe dans R

Essayons quelque chose de nouveau : la comparaison des médianes entre différents groupes.

Une question fréquente : Wue faire si nous voulons voir le revenu médian par région ? Tout comme nous l'avons fait pour les vecteurs simples, R facilite cette opération, mais nous devons d'abord regrouper nos données.

Une façon rapide de procéder avec base R est d'utiliser tapply():

income_values <- c(40000, 50000, 45000, 35000, 60000, 30000)
region_labels <- c("East", "West", "West", "East", "East", "West")

tapply(income_values, region_labels, median)

Cela permet de calculer le revenu médian pour chaque région.

Si vous préférez travailler avec le paquetage dplyr, vous pouvez obtenir le même résultat en utilisant une syntaxe conviviale :

library(dplyr)

income_data <- data.frame(income = income_values, region = region_labels)

income_data %>%
   group_by(region) %>%
   summarise(median_income = median(income))

Cette approche permet d'obtenir un tableau récapitulatif clair, indiquant le revenu médian pour chaque région.

Les résumés groupés de ce type sont particulièrement utiles lorsque vous souhaitez comparer les tendances centrales entre les différentes catégories de vos données.

Calcul de la médiane des colonnes d'un cadre de données en R

Il peut arriver que vous souhaitiez obtenir la médiane de chaque colonne d'un cadre de données en une seule fois - peut-être pour une analyse rapide des valeurs centrales de votre ensemble de données. J'utiliserai ici sapply().

test_scores <- data.frame(math = c(1, 2, 3), science = c(7, 8, 9))

sapply(test_scores, median)

Cette commande renvoie la médiane de chaque colonne, ce qui vous permet de repérer les tendances ou les valeurs aberrantes en un coup d'œil. Cette technique est particulièrement pratique lorsque vous explorez de nouvelles données et que vous souhaitez obtenir une vue d'ensemble rapide.

Les points à surveiller

Avant de conclure, soulignons quelques pièges courants et les meilleures pratiques pour garantir une navigation sans heurts avec median():

  • Vérifiez que vous ne transmettez que des données numériques à median(). Si vous essayez un facteur ou un vecteur de caractères, R lancera une erreur.

  • N'oubliez pas d'utiliser na.rm = TRUE si vous pensez qu'il manque des données.

  • Inutile de trier vos données manuellement. median() se charge du tri en interne, il vous suffit donc de transmettre votre vecteur tel quel.

Conclusion

La fonction median() est un excellent moyen de comprendre le véritable centre de vos données, en particulier lorsque votre ensemble de données contient des valeurs aberrantes susceptibles de fausser la moyenne. La fonction median() est également suffisamment souple pour traiter des questions complexes telles que les valeurs manquantes ou les résumés groupés.

Pour les étapes suivantes, j'ai également écrit un court article sur la fonction R mean(), si vous voulez y jeter un coup d'œil. Et n'oubliez pas de suivre notre cours d'analyse de données exploratoires en R pour acquérir toutes les compétences professionnelles utiles.


Josef Waples's photo
Author
Josef Waples

Je suis rédacteur et éditeur dans le domaine de la science des données. Je suis particulièrement intéressé par l'algèbre linéaire, les statistiques, R, etc. Je joue également beaucoup aux échecs ! 

Sujets

Apprenez R avec DataCamp

Cours

Introduction to R

4 h
2.9M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow