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