Home > Software engineering >  Filter out date less than 90 days old
Filter out date less than 90 days old

Time:11-10

I have a dateframe with over 500k rows I need to remove all the rows that the date is less than 90 days from the date the code is run( system date/time)

Name Date.
Tom 16/07/20
Dave 10/04/21

CodePudding user response:

dat$Date. <- as.Date(dat$Date., format = "%d/%m/%y")
dat
#   Name      Date.
# 1  Tom 2020-07-16
# 2 Dave 2021-04-10
difftime(Sys.Date(), dat$Date., units = "days")
# Time differences in days
# [1] 481 213
subset(dat, difftime(Sys.Date(), Date., units = "days") > 300)
#   Name      Date.
# 1  Tom 2020-07-16

Your sample data doesn't demonstrate your "90 days", so I changed it to "300 days" to show the filtering effect.

Other ways:

dat[difftime(Sys.Date(), dat$Date., units = "days") > 300,]
#   Name      Date.
# 1  Tom 2020-07-16

library(dplyr)
dat %>%
  filter(difftime(Sys.Date(), Date., units = "days") > 300)
#   Name      Date.
# 1  Tom 2020-07-16
  • Related