Comment filtrer par date à l’aide de dplyr



Vous pouvez utiliser les méthodes suivantes pour filtrer un bloc de données par dates dans R à l’aide du package dplyr :

Méthode 1 : filtrer les lignes après la date

df %>% filter(date_column > '2022-01-01')

Méthode 2 : filtrer les lignes avant la date

df %>% filter(date_column < '2022-01-01') 

Méthode 3 : filtrer les lignes entre deux dates

df %>% filter(between(date_column, as.Date('2022-01-20'), as.Date('2022-02-20')))

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le bloc de données suivant dans R :

#create data frame
df <- data.frame(day=seq(as.Date('2022-01-01'), by = 'week', length.out=10),
                 sales=c(40, 35, 39, 44, 48, 51, 23, 29, 60, 65))

#view data frame
df

          day sales
1  2022-01-01    40
2  2022-01-08    35
3  2022-01-15    39
4  2022-01-22    44
5  2022-01-29    48
6  2022-02-05    51
7  2022-02-12    23
8  2022-02-19    29
9  2022-02-26    60
10 2022-03-05    65

Exemple 1 : filtrer les lignes après la date

Nous pouvons utiliser le code suivant pour filtrer les lignes du bloc de données qui ont une date postérieure au 25/01/2022 :

library(dplyr)

#filter for rows with date after 1/25/2022
df %>% filter(day > '2022-01-25')

         day sales
1 2022-01-29    48
2 2022-02-05    51
3 2022-02-12    23
4 2022-02-19    29
5 2022-02-26    60
6 2022-03-05    65

Chacune des lignes du bloc de données résultant a une date postérieure au 25/01/2022.

Exemple 2 : filtrer les lignes avant la date

Nous pouvons utiliser le code suivant pour filtrer les lignes du bloc de données dont la date est antérieure au 25/01/2022 :

library(dplyr)

#filter for rows with date before 1/25/2022
df %>% filter(day < '2022-01-25')

         day sales
1 2022-01-01    40
2 2022-01-08    35
3 2022-01-15    39
4 2022-01-22    44

Chacune des lignes du bloc de données résultant a une date antérieure au 25/01/2022.

Exemple 3 : filtrer les lignes entre deux dates

Nous pouvons utiliser le code suivant pour filtrer les lignes du bloc de données dont la date est comprise entre le 20/01/2022 et le 20/02/2022 :

library(dplyr)

#filter for rows with dates between 1/20/2022 and 2/20/2022
df %>% filter(between(date_column, as.Date('2022-01-20'), as.Date('2022-02-20'))) 

         day sales
1 2022-01-22    44
2 2022-01-29    48
3 2022-02-05    51
4 2022-02-12    23
5 2022-02-19    29

Chacune des lignes du bloc de données résultant a une date comprise entre le 20/01/2022 et le 20/02/2022.

Remarque n°1 : Si l’une des méthodes ci-dessus ne fonctionne pas, vous devrez peut-être d’abord convertir les dates avec lesquelles vous travaillez dans un format de date reconnaissable à l’aide de la fonction as.Date() .

Remarque n°2 : Vous pouvez trouver la documentation complète de la fonction de filtre dans dplyr ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans dplyr :

Comment filtrer les lignes contenant une certaine chaîne à l’aide de dplyr
Comment filtrer selon plusieurs conditions à l’aide de dplyr
Comment utiliser un filtre « pas inclus » dans dplyr

Ajouter un commentaire

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