Comment supprimer des lignes avec des zéros dans R (avec exemple)



Vous pouvez utiliser l’une des méthodes suivantes pour supprimer les lignes contenant des zéros dans un bloc de données dans R :

Méthode 1 : supprimer les lignes contenant des zéros à l’aide de Base R

df_new <- df[apply(df!=0, 1, all),]

Méthode 2 : supprimer les lignes contenant des zéros à l’aide de dplyr

library(dplyr)

df_new <- filter_if(df, is.numeric, all_vars((.) != 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(points=c(5, 7, 8, 0, 12, 14, 0, 10, 8),
                 assists=c(0, 2, 2, 4, 4, 3, 7, 6, 10),
                 rebounds=c(8, 8, 7, 3, 6, 5, 0, 12, 11))

#view data frame
df

  points assists rebounds
1      5       0        8
2      7       2        8
3      8       2        7
4      0       4        3
5     12       4        6
6     14       3        5
7      0       7        0
8     10       6       12
9      8      10       11

Exemple 1 : Supprimer les lignes contenant des zéros à l’aide de Base R

Le code suivant montre comment supprimer les lignes contenant des zéros à l’aide de la fonction apply() de la base R :

#create new data frame that removes rows with any zeros from original data frame
df_new <- df[apply(df!=0, 1, all),]

#view new data frame
df_new

  points assists rebounds
2      7       2        8
3      8       2        7
5     12       4        6
6     14       3        5
8     10       6       12
9      8      10       11

Notez que les trois lignes contenant des valeurs nulles ont été supprimées.

Exemple 2 : Supprimer les lignes contenant des zéros à l’aide de dplyr

Le code suivant montre comment supprimer les lignes contenant des zéros à l’aide de la fonction filter_if() du package dplyr dans R :

#create new data frame that removes rows with any zeros from original data frame
df_new <- filter_if(df, is.numeric, all_vars((.) != 0))

#view new data frame
df_new

  points assists rebounds
1      7       2        8
2      8       2        7
3     12       4        6
4     14       3        5
5     10       6       12
6      8      10       11

Notez que les trois lignes contenant des valeurs nulles ont été supprimées.

Cela correspond au résultat que nous avons obtenu en utilisant la base R.

Remarque : Nous avons utilisé la fonction is.numeric pour spécifier que toutes les variables numériques du bloc de données doivent être différentes de zéro.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment supprimer les lignes vides du bloc de données dans R
Comment supprimer des colonnes avec des valeurs NA dans R
Comment supprimer les lignes en double dans R

Ajouter un commentaire

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