Comment effectuer une suppression par liste dans R (avec exemple)
La suppression par liste est une méthode qui supprime toutes les lignes d’un bloc de données qui ont une valeur manquante dans une colonne.
Le moyen le plus simple d’effectuer une suppression par liste dans R consiste à utiliser la syntaxe suivante :
complete_df <- df[complete.cases(df), ]
Cette syntaxe utilise la fonction complete.cases() pour créer un nouveau bloc de données qui contient uniquement les lignes d’un bloc de données d’origine qui n’ont aucune valeur manquante dans aucune colonne.
L’exemple suivant montre comment utiliser cette fonction dans la pratique.
Exemple : effectuer une suppression par liste dans R
Supposons que nous ayons le bloc de données suivant dans R qui contient des informations sur divers joueurs de basket-ball :
#create data frame df <- data.frame(rating=c(70, 75, 75, 78, 81, 85, 89, 91, 94, 97), points=c(12, 15, 14, 13, NA, 29, 24, 18, 20, 25), assists=c(9, 5, NA, 5, 7, 8, 11, 12, 13, 11)) #view data frame df rating points assists 1 70 12 9 2 75 15 5 3 75 14 NA 4 78 13 5 5 81 NA 7 6 85 29 8 7 89 24 11 8 91 18 12 9 94 20 13 10 97 25 11
Notez que deux lignes contiennent des valeurs NA dans certaines colonnes.
Nous pouvons utiliser la syntaxe suivante pour effectuer une suppression par liste et conserver uniquement les lignes qui n’ont aucune valeur manquante dans aucune colonne :
#create new data frame that only contains rows with no missing values complete_df <- df[complete.cases(df), ] #view new data frame complete_df rating points assists 1 70 12 9 2 75 15 5 4 78 13 5 6 85 29 8 7 89 24 11 8 91 18 12 9 94 20 13 10 97 25 11
Notez qu’aucune des lignes de ce nouveau bloc de données n’a de valeurs vides dans aucune colonne.
Notez également que nous pourrions utiliser la fonction nrow() pour déterminer combien de lignes du bloc de données d’origine avaient des valeurs manquantes dans n’importe quelle colonne :
#count how many rows have missing values in any column nrow(df[!complete.cases(df), ]) [1] 2
Cela nous indique que 2 lignes du bloc de données d’origine avaient des valeurs manquantes dans au moins une colonne.
Et nous pouvons tout aussi facilement compter combien de lignes ne comportaient aucune valeur manquante dans aucune colonne :
#count how many rows do not have missing values in any column nrow(df[complete.cases(df), ]) [1] 8
Cela nous indique que 8 lignes du bloc de données d’origine ne comportaient de valeurs manquantes dans aucune colonne.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :
Comment rechercher et compter les valeurs manquantes dans R
Comment interpoler les valeurs manquantes dans R