Comment effectuer un nettoyage des données dans R (avec exemple)
Le nettoyage des données fait référence au processus de transformation des données brutes en données adaptées à l’analyse ou à la création de modèles.
Dans la plupart des cas, « nettoyer » un ensemble de données implique de traiter les valeurs manquantes et les données en double.
Voici les méthodes les plus courantes pour « nettoyer » un ensemble de données dans R :
Méthode 1 : supprimer les lignes avec des valeurs manquantes
library(dplyr) #remove rows with any missing values df %>% na.omit()
Méthode 2 : remplacer les valeurs manquantes par une autre valeur
library(dplyr) library(tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is.numeric), ~replace_na(., median(., na.rm=TRUE))))
Méthode 3 : supprimer les lignes en double
library(dplyr) df %>% distinct(.keep_all=TRUE)
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le bloc de données suivant dans R qui contient des informations sur divers joueurs de basket-ball :
#create data frame df <- data.frame(team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebounds assists 1 A 4 9 2 2 A 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9 H 13 12 NA 10 I 8 11 14
Exemple 1 : Supprimer les lignes avec des valeurs manquantes
Nous pouvons utiliser la syntaxe suivante pour supprimer les lignes avec des valeurs manquantes dans n’importe quelle colonne :
library(dplyr) #remove rows with missing values new_df <- df %>% na.omit() #view new data frame new_df team points rebounds assists 1 A 4 9 2 2 A 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
Notez que le nouveau bloc de données ne contient aucune ligne avec des valeurs manquantes.
Exemple 2 : remplacer les valeurs manquantes par une autre valeur
Nous pouvons utiliser la syntaxe suivante pour remplacer les valeurs manquantes par la valeur médiane de chaque colonne :
library(dplyr) library(tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is.numeric),~replace_na(.,median(.,na.rm=TRUE)))) #view new data frame new_df team points rebounds assists 1 A 4 9 2.0 2 A 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9 H 13 12 6.5 10 I 8 11 14.0
Notez que les valeurs manquantes dans chaque colonne numérique ont chacune été remplacées par la valeur médiane de la colonne.
Notez que vous pouvez également remplacer la médiane dans la formule par la moyenne pour remplacer les valeurs manquantes par la valeur moyenne de chaque colonne.
Remarque : Nous avons également dû charger le package Tidyr dans cet exemple car la fonction drop_na() provient de ce package.
Exemple 3 : Supprimer les lignes en double
Nous pouvons utiliser la syntaxe suivante pour remplacer les valeurs manquantes par la valeur médiane de chaque colonne :
library(dplyr) #remove duplicate rows new_df <- df %>% distinct(.keep_all=TRUE) #view new data frame new_df team points rebounds assists 1 A 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8 H 13 12 NA 9 I 8 11 14
Notez que la deuxième ligne a été supprimée du bloc de données car chacune des valeurs de la deuxième ligne était des doublons des valeurs de la première ligne.
Remarque : Vous pouvez trouver la documentation complète de la fonction dplyr distinct() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment regrouper et résumer des données dans R
Comment créer des tableaux récapitulatifs dans R
Comment supprimer des lignes avec des valeurs manquantes dans R