【问题标题】:Create a time series with a row every 15 minutes每 15 分钟创建一个时间序列
【发布时间】:2017-08-26 06:32:48
【问题描述】:

我在创建每 15 分钟一行的时间序列(POSIXct 或 dttm 列)时遇到问题。

在 2015 年 1 月 1 日至 2016 年 12 月 31 日期间每 15 分钟会出现这样的情况(此处为月/日/年时:分):

1/15/2015 0:00
1/15/2015 0:15
1/15/2015 0:30
1/15/2015 0:45
1/15/2015 1:00

循环开始日期为 2015 年 1 月 1 日 0:00,然后添加 15 分钟直到 2016 年 12 月 31 日 23:45?

有没有人知道如何轻松做到这一点?

【问题讨论】:

标签: r datetime time-series lubridate


【解决方案1】:

更容易阅读

library(lubridate)
seq(ymd_hm('2015-01-01 00:00'),ymd_hm('2016-12-31 23:45'), by = '15 mins')

【讨论】:

    【解决方案2】:
    intervals.15.min <- 0 : (366 * 24 * 60 * 60 / 15 / 60)
    res <- as.POSIXct("2015-01-01","GMT") + intervals.15.min * 15 * 60
    res <- res[res < as.POSIXct("2016-01-01 00:00:00 GMT")]
    head(res)
    # "2015-01-01 00:00:00 GMT" "2015-01-01 00:15:00 GMT" "2015-01-01 00:30:00 GMT"
    tail(res)
    # "2015-12-31 23:15:00 GMT" "2015-12-31 23:30:00 GMT" "2015-12-31 23:45:00 GMT"
    

    【讨论】:

    • 我无法了解它是如何工作的,但它确实有效。稍微解释一下就好了。
    • 首先我创建了一个包含 15 个间隔的向量(以秒为单位),之后我只需将此向量添加到开始日期即可获得时间戳向量
    猜你喜欢
    • 1970-01-01
    • 2020-03-22
    • 2015-02-26
    • 2016-08-18
    • 2011-10-20
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多