Hello,
This code should recognize the >"24/01/2023", but it shows 2019 and 2022 files.
df[df$date < as.Date("24/01/2023"),]
I only need mayor than 24/01/2023 (day, month, year)
Thanks!
Hello,
This code should recognize the >"24/01/2023", but it shows 2019 and 2022 files.
df[df$date < as.Date("24/01/2023"),]
I only need mayor than 24/01/2023 (day, month, year)
Thanks!
Your dates are characters, which makes them hard to filter. I would convert them to POSIXct, since they have a time component, and then filter.
DF <- data.frame(Date = c("27/01/2023 11:45:23", "15/11/2022 15:53:19"),
Value = c(100,101))
DF
#> Date Value
#> 1 27/01/2023 11:45:23 100
#> 2 15/11/2022 15:53:19 101
DF$Date <- as.POSIXct(DF$Date, format = "%d/%m/%Y %H:%M:%S")
DF
#> Date Value
#> 1 2023-01-27 11:45:23 100
#> 2 2022-11-15 15:53:19 101
FilterDate <- as.POSIXct("24/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S")
NewDF <- DF[DF$Date > FilterDate, ]
NewDF
#> Date Value
#> 1 2023-01-27 11:45:23 100
Created on 2023-08-30 with reprex v2.0.2
Thanks for the solution
How is possible to do a range? 24 to 31? I try this:
FilterDate <- as.POSIXct("24/01/2023 00:00:00":"31/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S")
And appears this message:
Error in "24/01/2023 00:00:00":"31/01/2023 00:00:00" : NA/NaN argument
In addition: Warning messages:
1: In as.POSIXct(c("24/01/2023 00:00:00":"31/01/2023 00:00:00"), format = "%d/%m/%Y %H:%M:%S") :
NAs introduced by coercion
2: In as.POSIXct(c("24/01/2023 00:00:00":"31/01/2023 00:00:00"), format = "%d/%m/%Y %H:%M:%S") :
NAs introduced by coercion
FilterDate <- as.POSIXct("24/01/2023 00:00:00":"31/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S")
Error in "24/01/2023 00:00:00":"31/01/2023 00:00:00" : NA/NaN argument
In addition: Warning messages:
1: In as.POSIXct("24/01/2023 00:00:00":"31/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S") :
NAs introduced by coercion
2: In as.POSIXct("24/01/2023 00:00:00":"31/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S") :
NAs introduced by coercion
You should use a logical AND to filter within a range. As filters get more complicated, I find it easier to use the filter() function from dplyr.
Here are two solutions:
FilterDate1 <- as.POSIXct("24/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S")
FilterDate2 <- as.POSIXct("31/01/2023 00:00:00", format = "%d/%m/%Y %H:%M:%S")
NewDF <- DF[DF$Date > FilterDate1 & DF$Date < FilterDate2, ]
NewDF
# Or use the filter function from the dplyr library
library(dplyr)
NewDF <- filter(DF, Date > FilterDate1, Date < FilterDate2)
Lovely and simple
thanks!
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.