Comment filtrer un data.table dans R (avec exemples)



Vous pouvez utiliser les méthodes suivantes pour filtrer les lignes d’un data.table dans R :

Méthode 1 : filtrer les lignes en fonction d’une seule condition

dt[col1 == 'A', ]

Méthode 2 : filtrer les lignes contenant une valeur dans la liste

dt[col1 %in% c('A', 'C'), ]

Méthode 3 : filtrer les lignes pour lesquelles l’une des plusieurs conditions est remplie

dt[col1 == 'A' | col2 < 10, ]

Méthode 4 : filtrer les lignes où plusieurs conditions sont remplies

dt[col1 == 'A' & col2 < 10, ]

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le data.table suivant dans R :

library(data.table)

#create data table
dt <- data.table(team=c('A', 'A', 'A', 'B', 'C'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data table
dt

   team points assists rebounds
1:    A     99      33       30
2:    A     90      28       28
3:    A     86      31       24
4:    B     88      39       24
5:    C     95      34       28

Exemple 1 : Filtrer les lignes en fonction d’une condition

Le code suivant montre comment filtrer uniquement les lignes dont la valeur dans la colonne d’équipe est égale à « A » :

#filter for rows where team is A
dt[team == 'A', ]

   team points assists rebounds
1:    A     99      33       30
2:    A     90      28       28
3:    A     86      31       24

Exemple 2 : filtrer les lignes contenant une valeur dans la liste

Le code suivant montre comment filtrer uniquement les lignes dont la valeur dans la colonne d’équipe est égale à « A » ou « C » :

#filter for rows where team is A or C
dt[team %in% c('A', 'C'), ]

   team points assists rebounds
1:    A     99      33       30
2:    A     90      28       28
3:    A     86      31       24
4:    C     95      34       28

Connexe : Comment utiliser l’opérateur %in% dans R (avec exemples)

Exemple 3 : filtrer les lignes pour lesquelles l’une des plusieurs conditions est remplie

Le code suivant montre comment filtrer uniquement les lignes dont la valeur dans la colonne d’équipe est égale à « A » ou la valeur dans la colonne de points est inférieure à 90 :

#filter for rows where team is A or points < 90
dt[team == 'A' | points < 90, ]

   team points assists rebounds
1:    A     99      33       30
2:    A     90      28       28
3:    A     86      31       24
4:    B     88      39       24

Remarque : Le | L’opérateur signifie « OU » dans R.

Exemple 4 : Filtrer les lignes où plusieurs conditions sont remplies

Le code suivant montre comment filtrer uniquement les lignes où la valeur dans la colonne équipe est égale à « A » et la valeur dans la colonne points est inférieure à 90 :

#filter for rows where team is A and points < 90
dt[team == 'A' & points < 90, ]

   team points assists rebounds
1:    A     86      31       24

Remarque : L’opérateur & signifie « AND » dans R.

Ressources additionnelles

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

Comment filtrer un vecteur dans R
Comment supprimer des lignes avec des zéros dans R
Comment supprimer les lignes vides du bloc de données dans R

Ajouter un commentaire

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