【问题标题】:lubridate:floor_date set reference start timestamplubridate:floor_date 设置参考开始时间戳
【发布时间】: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"



【问题讨论】:

    标签: r timestamp lubridate


    【解决方案1】:

    试试clock 包:

    clock::date_floor(timestamps, 'hour', n = 4)
     [1] "2020-01-10 04:00:00 UTC" "2020-01-10 04:00:00 UTC"
     [3] "2020-01-10 04:00:00 UTC" "2020-01-10 04:00:00 UTC"
     [5] "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"
     [9] "2020-01-10 12:00:00 UTC" "2020-01-10 12:00:00 UTC"
    
    clock::date_floor(timestamps, 'hour', n = 5)
     [1] "2020-01-10 01:00:00 UTC" "2020-01-10 01:00:00 UTC"
     [3] "2020-01-10 06:00:00 UTC" "2020-01-10 06:00:00 UTC"
     [5] "2020-01-10 06:00:00 UTC" "2020-01-10 06:00:00 UTC"
     [7] "2020-01-10 06:00:00 UTC" "2020-01-10 11:00:00 UTC"
     [9] "2020-01-10 11:00:00 UTC" "2020-01-10 11:00:00 UTC"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 2013-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多