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

Ajouter un commentaire

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