Comment remplacer une chaîne dans une colonne à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour remplacer une chaîne dans une colonne spécifique d’un bloc de données à l’aide des fonctions du package dplyr :

Méthode 1 : remplacer une chaîne par une nouvelle chaîne

library(dplyr)
library(stringr) 

df %>% 
  mutate(across('column_name', str_replace, 'old_value', 'new_value'))

Méthode 2 : remplacer plusieurs chaînes par une nouvelle chaîne

library(dplyr)
library(stringr) 

df %>% 
  mutate(across('column_name', str_replace, 'old_value1|old_value2', 'new_value'))

Les exemples suivants montrent comment utiliser chaque méthode avec le bloc de données suivant dans R :

#create data frame
df <- data.frame(conf=c('East', 'East', 'West', 'West'),
                 position=c('P_Guard', 'P_Guard', 'S_Guard', 'S_Guard'),
                 points=c(22, 25, 29, 13))

#view data frame
df

  conf position points
1 East  P_Guard     22
2 East  P_Guard     25
3 West  S_Guard     29
4 West  S_Guard     13

Exemple 1 : remplacer une chaîne par une nouvelle chaîne

Le code suivant montre comment remplacer la chaîne « East » dans la colonne conf par la chaîne « Eastern » :

library(dplyr)
library(stringr)

#replace 'East' with 'Eastern' in conf column
df %>% 
  mutate(across('conf', str_replace, 'East', 'Eastern'))

     conf position points
1 Eastern  P_Guard     22
2 Eastern  P_Guard     25
3    West  S_Guard     29
4    West  S_Guard     13

Notez que chaque chaîne « East » a été remplacée par « Eastern » dans la colonne conf , tandis que toutes les autres colonnes sont restées inchangées.

Exemple 2 : remplacer plusieurs chaînes par une nouvelle chaîne

Le code suivant montre comment remplacer les chaînes ‘P_’ et ‘S_’ dans la colonne conf par une chaîne vide :

library(dplyr)
library(stringr)

#replace 'P_' and 'S_' with empty string in position column
df %>% 
  mutate(across('position', str_replace, 'P_|S_', ''))

  conf position points
1 East    Guard     22
2 East    Guard     25
3 West    Guard     29
4 West    Guard     13

Notez que chaque chaîne ‘P_’ et ‘S_’ a été remplacée par une chaîne vide dans la colonne de position , tandis que toutes les autres colonnes sont restées inchangées.

Notez que nous avons utilisé l’opérateur « OR » ( | ) pour indiquer à R que nous aimerions remplacer toutes les chaînes égales à « P_ » ou « S_ » par une chaîne vide.

N’hésitez pas à utiliser autant d’opérateurs « OU » ( | ) que vous le souhaitez pour remplacer autant de valeurs que vous le souhaitez dans une colonne à la fois.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes à l’aide de dplyr :

Comment recoder des valeurs à l’aide de dplyr
Comment remplacer NA par Zero dans dplyr
Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr

Ajouter un commentaire

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