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

问题描述:

我有两列数据,其中一个是'yyyy-mm-dd hh:mm:ss'格式的时间戳,另一个是具有订单数量的数字列。根据开始日期和结束日期创建时间序列

如何定义“订单号”列的每小时时间序列,其开始日期为&结束日期。

我尝试下面的代码,但得到的错误“无效时间序列参数指定

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

OFS_transformed - >号中的该时间戳记销售订单(该数据将被转换成时间序列)

DateHour - >时间戳格式 '2015年10月25日18:00:00'

温度 - >数据集

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 
+0

请提供示例数据和预期输出。 – mtoto

+0

@mtoto ..我已添加示例数据集。预期的输出是基于DateHour列中的时间戳(开始和结束日期)以1小时的频率具有OFS_transformed列的时间序列。谢谢 – Sreenath1986

+0

你看包'lubridate'中的'hour'功能吗?您可以使用它为每个实例分配一个小时ID,然后使用许多分组和汇总函数中的任何一个来执行下一步。 – ulfelder

要使用函数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

甲也许更好的选择来自相同命名的包,其中,所述frequency =参数是函数xts()甚至不是强制性的:

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

enter image description here

xts对象扩展ts,使之与ts对象一起工作的所有功能,也将与xts工作。

+0

谢谢,我会试试看,并会在这里更新..顺便说一句,任何想法为什么我上面的代码不起作用? – Sreenath1986

+0

可能是因为你还没有指定'频率=' – mtoto

+0

即使我也这么认为..我怎么能指定频率为1小时。我知道如何指定年/月/季等,但不是小时。请你帮帮我吧。 – Sreenath1986