我有一个时间序列,其中包含2年的观察数据点,并使用Holt-Winters创建预测模型。然后我使用R预测函数来推断未来24个月。
当前预测对象是一个时间序列,如下所示:
Jan Feb Mar June ...
2012 xxx yyy zzz xxy
2013 xyx yxy zyz zxz
但是,当我访问TS对象(例如myPrediction [1])时,我只返回值xxx。
我正在尝试存储预测对象的DATE和VALUE。最后,我想创建一个data.frame或一些对象,我可以直接导出到一个显示的MySQL表:
Projection Date Value
2012-01-01 xxx
2012-02-01 yyy
2012-03-01 zzz
...
...
2013-01-01 xyx
有没有简单的方法可以创建两列显示我返回的预测函数的日期+值?
答案 0 :(得分:0)
时间序列对象有点奇怪。它们是将起始和结束时间存储为小数年和属性中的间隔数的向量,而不是作为列或rownames访问。您可以使用以下两列构建数据框:
tsobj <- ts(1:24, frequency = 12, start = c(2012, 1))
tsattr <- tsp(tsobj)
data.frame(Dates =seq(tsattr[1], tsattr[2], by= 1/tsattr[3] ),
Value = tsobj )
Dates Value
1 2012.000 1
2 2012.083 2
3 2012.167 3
4 2012.250 4
5 2012.333 5
snip
#------a character valued column ----------
data.frame(Dates =paste( rep( c(2012,2013), each= 12 ),seq(1:12 ), sep="-"),
Value = tsobj)
Dates Value
1 2012-1 1
2 2012-2 2
3 2012-3 3
4 2012-4 4
5 2012-5 5
snip
#------Date-classed column -----
data.frame(Dates =as.Date(paste( rep( c(trunc(tsattr[1]), trunc(tsattr[2]) ),
each= 12 ),
seq(1:12 ),
1,
sep="-")),
Value = tsobj)
#----
Dates Value
1 2012-01-01 1
2 2012-02-01 2
3 2012-03-01 3
4 2012-04-01 4
5 2012-05-01 5
6 2012-06-01 6