首页 > 解决方案 > 过滤 POSIXct 时间戳

问题描述

我正在尝试按时间过滤大约 50 个条目的 df。

library(dplyr)
library(readr)

rush_hour <- filter(travel_times$`Actual departure` >= as.POSIXct("% 07:00:00") & travel_times$`Actual departure` <= as.POSIXct("% 18:00:00"))

但是,我大多 在 as.POSIXlt.character(x, tz, ...) 中得到 Error : character string is not in a standard unambiguous format。显然,我在尝试转换时还有其他的等等。尽管到目前为止没有任何效果,但已经通过了几个包。

我们的时间戳是“%Y-%M-%D %H:%M%:S”,但根据我的任务,我缺乏实际过滤它们的知识。

我很感激我能得到的任何帮助。我已经很确定这将是一个非常简单的错误,只要对背后的整个过程有更深入的了解,就可以轻松避免..

更新:尝试过类似的东西

filter(travel_times$`Actual departure` >= as.POSIXct("% 07:00:00", tz="UTC") & travel_times$`Actual departure` <= as.POSIXct("% 18:00:00"))

我得到错误:as.POSIXlt.character(x, tz, ...) 中的错误:字符串不是标准的明确格式。可悲的是,我不知道该怎么做。我以前也从未使用过这种格式。

标签: rdplyrposixlt

解决方案


我终于想出了如何过滤任务所需的特定时间段。我通过使用:

hms <- format(as.POSIXct(travel_times$`Actual departure`), "%H:%M:%S")
hms

rush_hour <- travel_times[hms >= "07:00:00" & hms <= "18:00:00",]

off_peak <- travel_times[hms < "07:00:00" | hms > "18:00:00",]

在stackoverflow上发布的另一个问题中找到了这个答案,但无法再次找到该页面。希望这可以帮助遇到类似问题的每个人。


推荐阅读