Comment remplacer les valeurs dans le bloc de données dans R (avec exemples)
Vous pouvez utiliser la syntaxe suivante pour remplacer une valeur particulière dans un bloc de données dans R par une nouvelle valeur :
df[df == 'Old Value'] <- 'New value'
Vous pouvez utiliser la syntaxe suivante pour remplacer l’une des nombreuses valeurs d’un bloc de données par une nouvelle valeur :
df[df == 'Old Value 1' | df == 'Old Value 2'] <- 'New value'
Et vous pouvez utiliser la syntaxe suivante pour remplacer une valeur particulière dans une colonne spécifique d’un bloc de données par une nouvelle valeur :
df['column1'][df['column1'] == 'Old Value'] <- 'New value'
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : remplacer une valeur particulière dans l’ensemble du bloc de données
Le code suivant montre comment remplacer une valeur particulière par une nouvelle valeur sur l’ensemble d’un bloc de données :
#create data frame df <- data.frame(a = as.factor(c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df a b c d 1 1 A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' with '24' across entire data frame df[df == 14] <- 24 #view updated data frame df a b c d 1 1 A 24 3 2 5 B 24 7 3 7 C 19 24 4 8 D 22 11
Exemple 2 : remplacer l’une des plusieurs valeurs dans l’ensemble du bloc de données
Le code suivant montre comment remplacer une valeur parmi plusieurs par une nouvelle valeur sur l’ensemble d’un bloc de données :
#create data frame df <- data.frame(a = as.factor(c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df a b c d 1 1 A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' and '19' with '24' across entire data frame df[df == 14 | df == 19] <- 24 #view updated data frame df a b c d 1 1 A 24 3 2 5 B 24 7 3 7 C 24 24 4 8 D 22 11
Exemple 3 : Remplacer la valeur dans une colonne spécifique du bloc de données
Le code suivant montre comment remplacer une valeur particulière par une nouvelle valeur dans une colonne spécifique d’un bloc de données :
#create data frame df <- data.frame(a = as.factor(c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #view data frame df a b c d 1 1 A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11 #replace '14' in column c with '24' df['c'][df['c'] == 14] <- 24 #view updated data frame df a b c d 1 1 A 24 3 2 5 B 24 7 3 7 C 19 14 4 8 D 22 11
Exemple 4 : Remplacer les valeurs d’une variable de facteur dans le bloc de données
Si vous tentez de remplacer une valeur particulière d’une variable de facteur, vous rencontrerez le message d’avertissement suivant :
#create data frame df <- data.frame(a = as.factor(c(1, 5, 7, 8)), b = c('A', 'B', 'C', 'D'), c = c(14, 14, 19, 22), d = c(3, 7, 14, 11)) #attempt to replace '1' with '24' in column a df['a'][df['a'] == 1] <- 24 Warning message: In `[<-.factor`(`*tmp*`, thisvar, value = 24) : invalid factor level, NA generated a b c d 1 <NA> A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11
Pour éviter cet avertissement, vous devez d’abord convertir la variable factorielle en variable numérique :
#convert column a to numeric df$a <- as.numeric(as.character(df$a)) #replace '1' with '24' in column a df['a'][df['a'] == 1] <- 24 #view updated data frame df a b c d 1 24 A 14 3 2 5 B 14 7 3 7 C 19 14 4 8 D 22 11
Ressources additionnelles
Comment remplacer les NA par des chaînes dans R
Comment imputer les valeurs manquantes dans R