【发布时间】:2021-12-14 02:07:50
【问题描述】:
我正在尝试使用lubridate:floor_date 将连续时间戳设置为“每 x 小时”。但是,当我的时间间隔大于第一个时间戳的小时时,它会相对于午夜而不是我的第一个时间戳下降。我还没有找到为我的开始时间设置参考时间戳的方法。我有 UTC 时间戳,但需要相对于例如 6:00 和 18:00 当地时间,这将是 12 小时间隔,当引用本地午夜时,但对于 UTC 时间,当它继续引用时不起作用( UTC) 午夜。
我知道我可以将时间戳转换为当地时间,但这并不理想。有没有办法为我缺少的floor_date 定义参考时间戳?
基本上,我想做的是相对于我的时间序列的开始“每小时”设置时间戳,而不是相对于其午夜单独设置每个时间戳。
timestamps<-structure(c(1578628800, 1578632400, 1578636000, 1578639600, 1578643200,
1578646800, 1578650400, 1578654000, 1578657600, 1578661200), class = c("POSIXct",
"POSIXt"), tzone = "UTC")
floor_date(timestamps, '4 hours')
[1] "2020-01-10 04:00:00 UTC" "2020-01-10 04:00:00 UTC" "2020-01-10 04:00:00 UTC"
[4] "2020-01-10 04:00:00 UTC" "2020-01-10 08:00:00 UTC" "2020-01-10 08:00:00 UTC"
[7] "2020-01-10 08:00:00 UTC" "2020-01-10 08:00:00 UTC" "2020-01-10 12:00:00 UTC"
[10] "2020-01-10 12:00:00 UTC"
floor_date(timestamps, '5 hours')
[1] "2020-01-10 00:00:00 UTC" "2020-01-10 05:00:00 UTC" "2020-01-10 05:00:00 UTC"
[4] "2020-01-10 05:00:00 UTC" "2020-01-10 05:00:00 UTC" "2020-01-10 05:00:00 UTC"
[7] "2020-01-10 10:00:00 UTC" "2020-01-10 10:00:00 UTC" "2020-01-10 10:00:00 UTC"
[10] "2020-01-10 10:00:00 UTC"
【问题讨论】: