R : Comment remplacer conditionnellement les valeurs dans le bloc de données



Vous pouvez utiliser l’une des méthodes suivantes pour remplacer conditionnellement les valeurs d’un bloc de données :

Méthode 1 : remplacer les valeurs dans l’ensemble du bloc de données

#replace all values in data frame equal to 30 with 0
df[df == 30] <- 0

Méthode 2 : remplacer les valeurs dans une colonne spécifique

#replace values equal to 30 in 'col1' with 0
df$col1[df$col1 == 30] <- 0

Méthode 3 : remplacer les valeurs dans une colonne spécifique en fonction d’une autre colonne

#replace values in col2 with 0 based on rows in col1 equal to 30
df$col2[df$col1 == 30] <- 0 

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

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 90, 88, 88),
                 assists=c(33, 28, 31, 30, 34),
                 rebounds=c(30, 30, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1    A     99      33       30
2    A     90      28       30
3    B     90      31       24
4    B     88      30       24
5    B     88      34       28

Méthode 1 : remplacer les valeurs dans l’ensemble du bloc de données

Le code suivant montre comment remplacer toutes les valeurs égales à 30 dans le bloc de données par 0 :

#replace all values in data frame equal to 30 with 0
df[df == 30] <- 0

#view updated data frame
df
  team points assists rebounds
1    A     99      33        0
2    A     90      28        0
3    B     90      31       24
4    B     88       0       24
5    B     88      34       28

Méthode 2 : remplacer les valeurs dans une colonne spécifique

Le code suivant montre comment remplacer toutes les valeurs égales à 90 dans la colonne « points » par 0 :

#replace all values equal to 90 in 'points' column with 0
df$points[df$points == 90] <- 0

#view updated data frame
df

  team points assists rebounds
1    A     99      33       30
2    A      0      28       30
3    B      0      31       24
4    B     88      30       24
5    B     88      34       28

Méthode 3 : remplacer les valeurs dans une colonne spécifique en fonction d’une autre colonne

Le code suivant montre comment remplacer les valeurs de la colonne « points » par 0, où la valeur de la colonne « équipe » est égale à « B ».

#replace all values equal to 90 in 'points' column with 0
df$points[df$team == 'B'] <- 0

#view updated data frame
df

  team points assists rebounds
1    A     99      33       30
2    A     90      28       30
3    B      0      31       24
4    B      0      30       24
5    B      0      34       28

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

R : Comment fusionner des blocs de données basés sur plusieurs colonnes
R : Comment ajouter une colonne au bloc de données en fonction d’autres colonnes

Ajouter un commentaire

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