Comment créer un tableau de fréquence par groupe dans R
Vous pouvez utiliser les fonctions suivantes du package dplyr pour créer une table de fréquence par groupe dans R :
library(dplyr) df %>% group_by(var1, var2) %>% summarize(Freq=n())
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : Créer un tableau de fréquence par groupe
Supposons que nous ayons le bloc de données suivant dans R :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'G', 'F', 'G', 'F', 'F', 'C'))
#view data frame
df
team position
1 A G
2 A G
3 A G
4 A F
5 B G
6 B F
7 B F
8 B C
Supposons que nous souhaitions créer un tableau de fréquence indiquant la fréquence de chaque poste, regroupé par équipe.
Nous pouvons utiliser la syntaxe suivante pour ce faire :
library(dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by(team, position) %>%
summarize(Freq=n())
# A tibble: 5 x 3
# Groups: team [2]
team position Freq
1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1
Voici comment interpréter le résultat :
- 1 joueur de l’équipe A occupe la position « F »
- 3 joueurs de l’équipe A ont la position ‘G’
- 1 joueur de l’équipe B occupe la position « C »
- 2 joueurs de l’équipe B ont la position ‘F’
- 1 joueur de l’équipe B occupe la position « G »
Notez que nous pouvons renommer la colonne qui contient les fréquences en changeant le nom de la variable dans la fonction summary() .
Par exemple, nous pourrions renommer la colonne « count » à la place :
library(dplyr)
#calculate frequency of position, grouped by team
df %>%
group_by(team, position) %>%
summarize(count=n())
# A tibble: 5 x 3
# Groups: team [2]
team position count
1 A F 1
2 A G 3
3 B C 1
4 B F 2
5 B G 1
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans dplyr :
Comment calculer les fréquences relatives à l’aide de dplyr
Comment classer les variables par groupe à l’aide de dplyr
Comment sélectionner des colonnes par index à l’aide de dplyr