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 .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *