Comment remplacer les NA par des chaînes dans R (avec exemples)



Vous pouvez utiliser la fonction replace_na() du package Tidyr pour remplacer les NA par des chaînes spécifiques dans une colonne d’un bloc de données dans R :

#replace NA values in column x with "missing"
df$x %>% replace_na('none')

Vous pouvez également utiliser cette fonction pour remplacer les NA par des chaînes spécifiques dans plusieurs colonnes d’un bloc de données :

#replace NA values in column x with "missing" and NA values in column y with "none"
df %>% replace_na(list(x = 'missing', y = 'none')) 

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Exemple 1 : Remplacer les NA par des chaînes dans une colonne

Le code suivant montre comment remplacer les NA par une chaîne spécifique dans une colonne d’un bloc de données :

library(tidyr)

df <- data.frame(status=c('single', 'married', 'married', NA),
                 education=c('Assoc', 'Bach', NA, 'Master'),
                 income=c(34, 88, 92, 90))

#view data frame
df

   status education income
1  single     Assoc     34
2 married      Bach     88
3 married      <NA>     92
4    <NA>    Master     90

#replace missing values with 'single' in status column
df$status <- df$status %>% replace_na('single')

#view updated data frame
df 

   status education income
1  single     Assoc     34
2 married      Bach     88
3 married      <NA>     92
4  single    Master     90

Exemple 2 : Remplacer les NA par des chaînes dans plusieurs colonnes

Le code suivant montre comment remplacer les NA par une chaîne spécifique dans plusieurs colonnes d’un bloc de données :

library(tidyr)

df <- data.frame(status=c('single', 'married', 'married', NA),
                 education=c('Assoc', 'Bach', NA, 'Master'),
                 income=c(34, 88, 92, 90))

#view data frame
df

   status education income
1  single     Assoc     34
2 married      Bach     88
3 married      <NA>     92
4    <NA>    Master     90

#replace missing values with 'single' in status column
df <- df %>% replace_na(list(status = 'single', education = 'none'))

#view updated data frame
df 

   status education income
1  single     Assoc     34
2 married      Bach     88
3 married      none     92
4  single    Master     90

Ressources additionnelles

Comment supprimer des lignes avec certains ou tous les NA dans R
Comment remplacer NA par Zero dans dplyr

Ajouter un commentaire

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