Comment calculer des ratios dans R (avec des exemples)
Vous pouvez utiliser les méthodes suivantes pour calculer le rapport entre les valeurs de deux colonnes dans R :
Méthode 1 : utiliser Base R
#calculate ratio between variable1 and variable2 df$ratio <- df$variable1/df$variable1 #calculate ratio between variable1 and variable2, rounded to 2 decimal places df$ratio <- round(df$variable1/df$variable2, 2)
Méthode 2 : utiliser dplyr
library(dplyr) #calculate ratio between variable1 and variable2 df <- df %>% mutate(ratio = variable1/variable2) #calculate ratio between variable1 and variable2, rounded to 2 decimal places df <- df %>% mutate(ratio = round(variable1/variable2, 2))
Ce didacticiel explique comment utiliser chaque méthode en pratique avec le bloc de données suivant qui montre le nombre total de tirs effectués et tentés par différents joueurs de basket-ball :
#create data frame
df <- data.frame(players=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
makes=c(4, 4, 3, 6, 7, 8, 3, 10),
attempts=c(12, 7, 5, 6, 10, 12, 5, 19))
#view data frame
df
players makes attempts
1 A 4 12
2 B 4 7
3 C 3 5
4 D 6 6
5 E 7 10
6 F 8 12
7 G 3 5
8 H 10 19
Exemple 1 : calculer des ratios en utilisant la base R
Le code suivant montre comment calculer le rapport entre les valeurs des colonnes de marques et de tentatives en utilisant la base R :
#calculate ratio between makes and attempts columns
df$ratio <- df$makes/df$attempts
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8 H 10 19 0.5263158
Le rapport entre les tentatives et les tentatives pour le premier joueur est de 4/12 = 0,33 .
En d’autres termes, le premier joueur a réalisé environ 33 % de ses tentatives de tir.
Nous pouvons interpréter les valeurs du ratio pour tous les autres joueurs de la même manière.
On peut également utiliser la fonction round() pour arrondir les valeurs du ratio à un certain nombre de décimales :
#calculate ratio between makes and attempts columns, rounded to 2 decimal places
df$ratio <- round(df$makes/df$attempts, 2)
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8 H 10 19 0.53
Chacune des valeurs de la colonne ratio est désormais arrondie à deux décimales.
Exemple 2 : calculer des ratios à l’aide de dplyr
Le code suivant montre comment calculer le rapport entre les valeurs dans les colonnes de marques et de tentatives à l’aide du package dplyr :
library(dplyr)
#add new column that shows ratio of makes to attempts
df <- df %>%
mutate(ratio = makes/attempts)
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.3333333
2 B 4 7 0.5714286
3 C 3 5 0.6000000
4 D 6 6 1.0000000
5 E 7 10 0.7000000
6 F 8 12 0.6666667
7 G 3 5 0.6000000
8 H 10 19 0.5263158
On peut également utiliser la fonction round() pour arrondir les valeurs du ratio à un certain nombre de décimales :
library(dplyr)
#add new column that shows ratio of makes to attempts, rounded to 2 decimal places
df <- df %>%
mutate(ratio = round(makes/attempts, 2))
#view updated data frame
df
players makes attempts ratio
1 A 4 12 0.33
2 B 4 7 0.57
3 C 3 5 0.60
4 D 6 6 1.00
5 E 7 10 0.70
6 F 8 12 0.67
7 G 3 5 0.60
8 H 10 19 0.53
Chacune des valeurs de la colonne ratio est désormais arrondie à deux décimales.
Notez que la méthode de base R et la méthode dplyr produisent les mêmes résultats.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment filtrer les valeurs uniques à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr
Comment compter le nombre d’occurrences dans les colonnes de R