Comment recoder des valeurs à l’aide de dplyr



Parfois, vous pourriez être intéressé à recoder certaines valeurs dans une trame de données dans R. Heureusement, cela peut facilement être fait en utilisant la fonction recode() du package dplyr.

Ce tutoriel montre plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : recoder une seule colonne dans un dataframe

Le code suivant montre comment recoder une seule colonne dans un dataframe :

library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' and 'Loss' to '1' and '0'
df %>% mutate(result=recode(result, 'Win'='1', 'Loss'='0'))

       player points result
1      A     24      1
2      B     29      0
3      C     13      1
4      D     15      0

Exemple 2 : recoder une seule colonne dans une trame de données et fournir des valeurs NA

Le code suivant montre comment recoder une seule colonne dans une trame de données et attribuer la valeur NA à toute valeur à laquelle aucune nouvelle valeur n’est explicitement attribuée :

library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#view dataframe 
df

#change 'Win' to '1' and give all other values a value of NA
df %>% mutate(result=recode(result, 'Win'='1', .default=NA_character_))

       player points result
1      A     24      1
2      B     29      <NA>
3      C     13      1
4      D     15      <NA>

Exemple 3 : recoder plusieurs colonnes dans un dataframe

Le code suivant montre comment recoder plusieurs colonnes à la fois dans un dataframe :

library(dplyr)

#create dataframe 
df <- data.frame(player = c('A', 'B', 'C', 'D'),
                 points = c(24, 29, 13, 15),
                 result = c('Win', 'Loss', 'Win', 'Loss'))

#recode 'player' and 'result' columns
df %>% mutate(player=recode(player, 'A'='Z'),
              result=recode(result, 'Win'='1', 'Loss'='0'))

       player points result
1      Z     24      1
2      B     29      0
3      C     13      1
4      D     15      0

Vous pouvez trouver la documentation complète de la fonction recode() ici .

Ajouter un commentaire

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