Comment calculer les fréquences relatives à l’aide de dplyr
Souvent, vous souhaiterez peut-être calculer les fréquences/proportions relatives des valeurs dans une ou plusieurs colonnes d’un bloc de données dans R.
Heureusement, cela est facile à faire en utilisant les fonctions du package dplyr . Ce didacticiel montre comment utiliser ces fonctions pour calculer les fréquences relatives sur la trame de données suivante :
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 32, 34, 39)) #view data frame df team position points 1 A G 12 2 A F 15 3 A F 19 4 B G 22 5 B G 32 6 B G 34 7 B F 39
Exemple 1 : Fréquence relative d’une variable
Le code suivant montre comment calculer la fréquence relative de chaque équipe dans le bloc de données :
library(dplyr) df %>% group_by(team) %>% summarise(n = n()) %>% mutate(freq = n / sum(n)) # A tibble: 2 x 3 team n freq 1 A 3 0.429 2 B 4 0.571
Cela nous indique que l’équipe A représente 42,9 % de toutes les lignes du bloc de données tandis que l’équipe B représente les 57,1 % des lignes restantes. Notez qu’ensemble, ils totalisent 100 %.
Connexe : Le guide complet : Comment regrouper et résumer des données dans R
Exemple 2 : Fréquence relative de plusieurs variables
Le code suivant montre comment calculer la fréquence relative des positions par équipe :
library(dplyr) df %>% group_by(team, position) %>% summarise(n = n()) %>% mutate(freq = n / sum(n)) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 A F 2 0.667 2 A G 1 0.333 3 B F 1 0.250 4 B G 3 0.750
Cela nous dit que :
- 66,7% des joueurs de l’équipe A sont en position F.
- 33,3% des joueurs de l’équipe A sont en position G.
- 25,0% des joueurs de l’équipe A sont en position F.
- 75,0% des joueurs de l’équipe B sont en position G.
Connexe : Comment utiliser Mutate pour créer de nouvelles variables dans R
Exemple 3 : Afficher les fréquences relatives sous forme de pourcentages
Le code suivant montre comment calculer la fréquence relative des positions par équipe et comment afficher ces fréquences relatives sous forme de pourcentages :
library(dplyr) df %>% group_by(team, position) %>% summarise(n = n()) %>% mutate(freq = paste0(round(100 * n/sum(n), 0), '%')) # A tibble: 4 x 4 # Groups: team [2] team position n freq 1 A F 2 67% 2 A G 1 33% 3 B F 1 25% 4 B G 3 75%
Vous pouvez trouver plus de didacticiels R ici .