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

Ajouter un commentaire

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