Comment compter les observations par groupe dans R
Souvent, vous pourriez être intéressé à compter le nombre d’ observations par groupe dans R.
Heureusement, cela est facile à faire en utilisant la fonction count() de la bibliothèque dplyr .
Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette fonction à l’aide du bloc de données suivant :
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'), position = c('G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F', 'F'), points = c(4, 13, 7, 8, 15, 15, 17, 9, 21, 22, 25, 31)) #view data frame df team position points 1 A G 4 2 A G 13 3 A F 7 4 B G 8 5 B F 15 6 B F 15 7 B F 17 8 B G 9 9 C G 21 10 C F 22 11 C F 25 12 C F 31
Exemple 1 : compter par une variable
Le code suivant montre comment compter le nombre total de joueurs par équipe :
library(dplyr)
#count total observations by variable 'team'
df %>% count(team)
# A tibble: 3 x 2
team n
1 A 3
2 B 5
3 C 4
D’après le résultat, nous pouvons voir que :
- L’équipe A est composée de 3 joueurs
- L’équipe B est composée de 5 joueurs
- L’équipe C est composée de 4 joueurs
Cette fonction single count() nous donne une belle idée de la répartition des joueurs par équipe.
Notez que nous pouvons également trier les décomptes si nous le souhaitons :
#count total observations by variable 'team' df %>% count(team, sort=TRUE) # A tibble: 3 x 2 team n 1 B 5 2 C 4 3 A 3
Exemple 2 : Comptage par plusieurs variables
Nous pouvons également trier selon plusieurs variables :
#count total observations by 'team' and 'position'
df %>% count(team, position)
# A tibble: 6 x 3
team position n
1 A F 1
2 A G 2
3 B F 3
4 B G 2
5 C F 3
6 C G 1
D’après le résultat, nous pouvons voir que :
- L’équipe A compte 1 joueur en position « F » (avant) et 2 joueurs en position « G » (garde).
- L’équipe B compte 3 joueurs en position « F » (avant) et 2 joueurs en position « G » (garde).
- L’équipe C compte 3 joueurs en position « F » (avant) et 1 joueur en position « G » (garde).
Exemple 3 : nombre pondéré
Nous pouvons également « pondérer » les comptes d’une variable par une autre variable. Par exemple, le code suivant montre comment compter le total des observations par équipe, en utilisant la variable « points » comme pondération :
df %>% count(team, wt=points)
# A tibble: 3 x 2
team n
1 A 24
2 B 64
3 C 99
Vous pouvez trouver la documentation complète de la fonction count() ici .