根据开始日期和结束日期创建时间序列
我有两列数据,其中一个是'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
要使用函数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)
甲也许更好的选择来自相同命名的包,其中,所述frequency =
参数是函数xts()
甚至不是强制性的:
library(xts)
OFS_xts <- xts(temp$OFS_transformed,
order.by = temp$DateHour)
plot(OFS_xts)
的xts
对象扩展类ts
,使之与ts
对象一起工作的所有功能,也将与xts
工作。
谢谢,我会试试看,并会在这里更新..顺便说一句,任何想法为什么我上面的代码不起作用? – Sreenath1986
可能是因为你还没有指定'频率=' – mtoto
即使我也这么认为..我怎么能指定频率为1小时。我知道如何指定年/月/季等,但不是小时。请你帮帮我吧。 – Sreenath1986
请提供示例数据和预期输出。 – mtoto
@mtoto ..我已添加示例数据集。预期的输出是基于DateHour列中的时间戳(开始和结束日期)以1小时的频率具有OFS_transformed列的时间序列。谢谢 – Sreenath1986
你看包'lubridate'中的'hour'功能吗?您可以使用它为每个实例分配一个小时ID,然后使用许多分组和汇总函数中的任何一个来执行下一步。 – ulfelder