Science_blog: Filter row wise data from data frame with dates in R

Search This Blog

Thursday, 16 February 2023

Filter row wise data from data frame with dates in R

What Is the Best Way to Filter by Date in R?


Method 1: After Date Filter Rows


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


Method 2: Filter Rows Before Date


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


Method 3: Filter Rows Between Two Dates


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



Let’s create a 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))

Now we can view the data frame


df

          day sales

1  2022-01-01   240

2  2022-01-08   335

3  2022-01-15   359

4  2022-01-22   544

5  2022-01-29   548

6  2022-02-05   251

7  2022-02-12   223

8  2022-02-19   529

9  2022-02-26   660

10 2022-03-05   165


Example 1: Filter Rows After Date

To filter for rows in the data frame with a date after 1/25/2022, use the following code.


library(tidyverse)

filter for rows with dates after 1/25/2022


df %>% filter(day > '2022-01-25')

        day sales

1 2022-01-29   548

2 2022-02-05   251

3 2022-02-12   223

4 2022-02-19   529

5 2022-02-26   660

6 2022-03-05   165

Each row in the generated data frame has a date that is later than 1/25/2022.


Best Books on Data Science with Python – Data Science Tutorials


Example 2: Filter Rows Before Date

To filter for rows in the data frame with a date before 1/25/2022, we can use the following code.


library(dplyr)

Let’s filter for rows with dates before 1/25/2022


df %>% filter(day < '2022-01-25')

        day sales

1 2022-01-01   240

2 2022-01-08   335

3 2022-01-15   359

4 2022-01-22   544

Each entry in the generated data frame has a date that is prior to 1/25/2022.


Example 3: Filter Rows Between Two Dates

To filter for rows in the data frame with a date between 1/20/2022 and 2/20/2022, use the following code.


library(tidyverse)

filter for rows with dates between 1/20/2022 and 2/20/2022


Best Data Science YouTube Tutorials Free to Learn – Data Science Tutorials


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

         day sales

1 2022-01-22   544

2 2022-01-29   548

3 2022-02-05   251

4 2022-02-12   223

5 2022-02-19   529

The dates in the rows of the generated data frame range from 1/20/2022 to 2/20/2022.


If none of the ways above work, you may need to use them as.Date() function to convert the dates you’re working with to a recognized date format.

No comments:

Post a Comment

Multidisciplinary Mega‑Journals: Has Their Time Passed?

     Over the past decade, multidisciplinary and so‑called “mega‑journals” became some of the most attractive destinations for researchers u...