根据开始和结束日期创建时间序列

时间:2016-11-20 09:44:07

标签: r datetime time-series

我有两列数据,其中一个时间戳位于&yyyy-mm-dd hh:mm:ss'格式和另一个包含订单数量的数字列。

如何定义“否定订单”的每小时时间序列'带有开始日期和列的列结束日期。

我尝试了以下代码,但收到了错误' 指定的无效时间序列参数'

OFS_ts <-ts(data = temp$OFS_transformed,start = temp$DateHour[1],end = temp$DateHour[nrow(temp)])

OFS_transformed - &gt;该时间戳记的销售订单数量(要转换为时间序列的数据)

DateHour - &gt;时间戳格式为&#39; 2015-10-25 18:00:00&#39;

temp - &gt;数据集

OFS_transformed    DateHour

6.89871446      2015-10-30 00:00:00
6.1548579376    2015-10-30 01:00:00
5.9889612322    2015-10-30 02:00:00
6.678342022     2015-10-30 03:00:00
5.7333410385    2015-10-30 04:00:00
6.8741984193    2015-10-30 05:00:00
5.4806386163    2015-10-30 06:00:00

1 个答案:

答案 0 :(得分:0)

要使用函数ts(),您需要定义frequency=参数,该参数指定数据的周期性。这取决于时间序列的类型和观察的频率。也可能有多个季节性。

例如,您的每小时数据可以包含每日,(frequency=24),每周(frequency=24×7=168)或每月季节性(frequency=24×30=720)。请注意,只需指定frequency=start=即可。

# Daily seasonality
OFS_ts <-ts(data = df$OFS_transformed,
             start = min(df$DateHour),
             frequency = 24)

ts()的一个缺点是日期值以数字表示:

> plot(OFS_ts)

enter image description here

一个更好的选择是来自同名包的函数xts(),其中frequency =参数甚至不是必需的:

library(xts)
OFS_xts <- xts(temp$OFS_transformed, 
                order.by = temp$DateHour)
plot(OFS_xts)

enter image description here

xts对象扩展ts,因此所有与ts个对象一起使用的函数也可以与xts一起使用。< / p>