每隔几个小时R的时间序列?

时间:2018-04-12 23:03:44

标签: r time-series data-mining

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小时的数据,而且每两小时才会进行一次。我无法决定如何申报频率。

如果有人能提供帮助,我将非常感激。提前致谢

1 个答案:

答案 0 :(得分:0)

一种选择是创建序列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生成从1st January5th January的时间序列,间隔为2小时。一旦生成系列,就应用过滤条件。过滤条件仅考虑hour >= 9hour <= 21的时间日期。这将提供所需的时间序列。