无法根据日期列从 df 获取日期子集

cannot get subset of date from df based on date columns

我正在制作一份关于包含停车交易的数据框的报告。数据框有两个 POSIXct 变量,称为 start_timeend_time。它们的外观示例如下:

2019-11-25 10:35:00 UTC" "2019-11-28 18:21:00 UTC"

我想获取从 "2020-02-06""2020-03-23" 的数据框的一个子集。 这段时间肯定有交易发生,但是当我使用以下代码时,我得到了一个零观察的子集。

cutdate<- as.Date("2020-03-23",format ="%Y-%m-%d")
bdate<-as.Date("2020-06-02",format ="%Y-%m-%d")

dwdf%>% filter(as.Date(start_time) >= bdate & as.Date(end_time) < cutdate)->Bdf

我已经尝试过其他函数,例如 subset 等等,但我得到了同样的结果。然后,我尝试了一些更简单的方法,并尝试从变量 start_time 中查看是否创建了一个简单的布尔表达式,如

any(as.Date(dwdf$start_time) > bdate)

如果我得到任何 TRUE,但我得到的只是 false。我不明白为什么会这样,因为如果我这样做 range(start_time) 明显有开始时间晚于2月6日。

我也看过关于堆栈交换的类似问题,我不知道为什么我会得到不同的结果,因为我正在实施他们所说的。

我强烈推荐 lubridate 处理时间数据的包。

library(lubridate)

x <- c("2019-11-25 10:35:00 UTC", "2019-11-28 18:21:00 UTC")

x_datetime <- ymd_hms(x)

x_datetime < ymd(20191126)
[1]  TRUE FALSE

这些函数(ymd as in "year-month-day" or ymd_hms as in year-month-day-hour-minute-second")可以很容易地将数据转换成日期格式。一旦有了这个,比较就不难了。