【问题标题】:Time series in R for every couple of hours?R中的时间序列每隔几个小时?
【发布时间】:2018-09-23 05:26:23
【问题描述】:
Time  Customer Count
11:00 13
13:00 25
15:00 22
17:00 21
19:00 15
21:00 10

我有上面的数据框,表示从 11:00(上午 11 点)到 21:00(晚上 9 点)进入一家小商店的顾客数量。 我需要制作这些数据的时间序列,但我无法为这些数据声明 ts 函数。从 11 点到 9 点只有 10 个小时的数据,而且每两个小时才采集一次。我无法决定如何声明频率。

如果有人可以提供帮助,将不胜感激。提前致谢

【问题讨论】:

  • 不重复队友。我被告知可以使用标准 ts() 函数
  • @JohnBanter 查看评论部分中指向该答案的链接。如果不完全符合您的要求,则值得一读背景。

标签: r time-series data-mining


【解决方案1】:

一种选择是创建序列2 小时基础,然后过滤时间范围为:

library(lubridate)
v <- seq(from = as.POSIXct("2017-01-01 11:00"), 
    to = as.POSIXct("2017-01-05 21:00"), by = "2 hour")

v[hour(v)>=9 & hour(v)<=21]
# [1] "2017-01-01 11:00:00 GMT" "2017-01-01 13:00:00 GMT" "2017-01-01 15:00:00 GMT"
# [4] "2017-01-01 17:00:00 GMT" "2017-01-01 19:00:00 GMT" "2017-01-01 21:00:00 GMT"
# [7] "2017-01-02 09:00:00 GMT" "2017-01-02 11:00:00 GMT" "2017-01-02 13:00:00 GMT"
# [10] "2017-01-02 15:00:00 GMT" "2017-01-02 17:00:00 GMT" "2017-01-02 19:00:00 GMT"
# [13] "2017-01-02 21:00:00 GMT" "2017-01-03 09:00:00 GMT" "2017-01-03 11:00:00 GMT"
# [16] "2017-01-03 13:00:00 GMT" "2017-01-03 15:00:00 GMT" "2017-01-03 17:00:00 GMT"
# so on few more rows.

上面的 seq 以 2 小时的间隔生成从 1st January5th January 的时间序列。生成系列后应用过滤条件。过滤条件只考虑hour &gt;= 9hour &lt;= 21 的时间-日期。这将提供所需的时间序列。

【讨论】:

    猜你喜欢
    • 2018-03-10
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多