Como filtrar por data usando dplyr


Você pode usar os seguintes métodos para filtrar um quadro de dados por datas em R usando o pacote dplyr :

Método 1: Filtrar linhas após data

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

Método 2: Filtrar linhas antes da data

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

Método 3: Filtrar linhas entre duas datas

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

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados em 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

Exemplo 1: Filtrar linhas após data

Podemos usar o seguinte código para filtrar linhas do quadro de dados com data posterior a 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

Cada uma das linhas no quadro de dados resultante tem uma data posterior a 25/01/2022.

Exemplo 2: Filtrar linhas antes da data

Podemos usar o seguinte código para filtrar linhas do quadro de dados cuja data é anterior a 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

Cada uma das linhas no quadro de dados resultante tem uma data anterior a 25/01/2022.

Exemplo 3: Filtrar linhas entre duas datas

Podemos usar o seguinte código para filtrar linhas do quadro de dados cuja data está entre 20/01/2022 e 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

Cada uma das linhas no quadro de dados resultante tem uma data entre 20/01/2022 e 20/02/2022.

Nota nº 1 : se algum dos métodos acima não funcionar, pode ser necessário primeiro converter as datas com as quais você está trabalhando em um formato de data reconhecível usando as.Date( function ) .

Nota nº 2 : você pode encontrar a documentação completa da função de filtro no dplyr aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no dplyr:

Como filtrar linhas contendo uma determinada string usando dplyr
Como filtrar por múltiplas condições usando dplyr
Como usar um filtro “não incluído” no dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *