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