Come filtrare per data usando dplyr


È possibile utilizzare i seguenti metodi per filtrare un frame di dati in base alle date in R utilizzando il pacchetto dplyr :

Metodo 1: filtra le righe dopo la data

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

Metodo 2: filtra le righe prima della data

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

Metodo 3: filtra le righe tra due date

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

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente frame di dati in 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

Esempio 1: filtrare le righe dopo la data

Possiamo utilizzare il seguente codice per filtrare le righe dal frame di dati che hanno una data successiva al 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

Ciascuna delle righe nel frame di dati risultante ha una data successiva al 25/01/2022.

Esempio 2: filtrare le righe prima della data

Possiamo utilizzare il seguente codice per filtrare le righe dal frame di dati la cui data è precedente al 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

Ciascuna delle righe nel frame di dati risultante ha una data precedente al 25/01/2022.

Esempio 3: filtrare le righe tra due date

Possiamo utilizzare il seguente codice per filtrare le righe dal frame di dati la cui data è compresa tra il 20/01/2022 e il 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

Ciascuna delle righe nel frame di dati risultante ha una data compresa tra il 20/01/2022 e il 20/02/2022.

Nota n. 1 : se uno qualsiasi dei metodi sopra indicati non funziona, potrebbe essere necessario prima convertire le date con cui stai lavorando in un formato di data riconoscibile utilizzando la funzione as.Date( ) .

Nota n.2 : puoi trovare la documentazione completa della funzione filtro in dplyr qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in dplyr:

Come filtrare le righe contenenti una determinata stringa utilizzando dplyr
Come filtrare in base a più condizioni utilizzando dplyr
Come utilizzare un filtro “non incluso” in dplyr

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *