I have an original dataset called covid_cases
and I need to make a new dataset called delta_cases
bases on the covid_cases
dataset with data only from the date 17th of august 2021
I have tried :
delta_cases <- covid_cases %>%
filter(Date > '2021-08-17')
but that gave me no data
CodePudding user response:
Your Date column must be a Date
class , you can use as.Date
function something like :
covid_cases$Date <- as.Date(covid_cases$Date)
then you can compare dates with
delta_cases <- covid_cases %>% filter(Date > '2021-08-17')
Edit
Here is simple data set to help
library(dplyr , warn.conflicts = FALSE)
example <- data.frame(Date = c("2022-12-31" , "2022-12-30" ,"2022-12-29" , "2022-12-28")
, n_cases = c(12,23,12,34))
example$Date <- as.Date(example$Date)
delta_casses <- example %>% filter(Date > "2022-12-29")
delta_casses
#> Date n_cases
#> 1 2022-12-31 12
#> 2 2022-12-30 23
Created on 2022-05-28 by the reprex package (v2.0.1)
CodePudding user response:
If str(covid_cases$Date)
is indeed a date class, example %>% filter(Date > '2022-12-29')
should work. You may have additional packages that are interfering with dplyr::filter()
. Try running the following code to clear all packages and reload dplyr
invisible(lapply(
paste0('package:', names(sessionInfo()$otherPkgs)),
detach,
character.only = TRUE,
unload = TRUE
))
library(dplyr)