Comment calculer le mode par groupe dans R (avec exemples)
Le mode d’un ensemble de données représente la valeur la plus fréquente.
Le logiciel statistique R n’a pas de fonction intégrée pour calculer le mode d’un ensemble de données, mais vous pouvez utiliser la fonction suivante pour calculer le mode :
find_mode <- function(x) { u <- unique(x) tab <- tabulate(match(x, u)) u[tab == max(tab)] }
Les exemples suivants montrent comment utiliser cette fonction pour calculer le mode par groupe dans R.
Exemple 1 : calculer le mode par groupe dans R (un mode)
Supposons que nous ayons le bloc de données suivant dans R qui montre les points marqués par les basketteurs de différentes équipes :
#define data frama df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(5, 7, 7, 9, 12, 12, 10, 14)) #view data frame df team points 1 A 5 2 A 7 3 A 7 4 A 9 5 B 12 6 B 12 7 B 10 8 B 14
On peut utiliser le code suivant pour calculer le mode des points , regroupés par équipe :
library(dplyr)
#define function to calculate mode
find_mode <- function(x) {
u <- unique(x)
tab <- tabulate(match(x, u))
u[tab == max(tab)]
}
#calculate mode of 'points' by 'team'
df %>%
group_by(team) %>%
summarize(mode_points = find_mode(points))
# A tibble: 2 x 2
team mode_points
1 A 7
2 B 12
D’après les résultats, nous pouvons voir :
- Le mode de points pour l’équipe A est 7 .
- Le mode de points pour l’équipe B est 12 .
Exemple 2 : Calculer le mode par groupe dans R (modes multiples)
Supposons que nous ayons le bloc de données suivant dans R :
#define data frama df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(5, 7, 7, 9, 12, 12, 10, 10)) #view data frame df team points 1 A 5 2 A 7 3 A 7 4 A 9 5 B 12 6 B 12 7 B 10 8 B 10
On peut utiliser le code suivant pour calculer le mode des points , regroupés par équipe :
library(dplyr)
#define function to calculate mode
find_mode <- function(x) {
u <- unique(x)
tab <- tabulate(match(x, u))
u[tab == max(tab)]
}
#calculate mode of 'points' by 'team'
df %>%
group_by(team) %>%
summarize(mode_points = find_mode(points))
# A tibble: 3 x 2
# Groups: team [2]
team mode_points
1 A 7
2 B 12
3 B 10
D’après les résultats, nous pouvons voir :
- Le mode de points pour l’équipe A est 7 .
- Le mode de points pour l’équipe B est 12 et 10 .
Dans cet exemple, deux valeurs de points se produisaient le plus fréquemment pour l’équipe B. Chacune de ces valeurs de mode est donc renvoyée sur une ligne distincte pour l’équipe B dans la sortie.
Ressources additionnelles
Les didacticiels suivants expliquent comment calculer d’autres statistiques descriptives dans R :
Comment calculer le résumé de cinq nombres dans R
Comment créer des tableaux récapitulatifs dans R
Comment utiliser la fonction Mean() dans R