我有一个格式为
的CSV文件ref_date;wings;airfoil;turbines
2015-03-31;123,22;22,77;99,0
2015-04-30;123,22;28,77;99,0
2015-05-31;123,22;22,177;02,0
2015-06-30;56,288;22,77;99,0
我希望使用forecast
包来预测此时间序列的下一个值。 forecast
包只接受ts
对象,但到目前为止,我创建一个对象的尝试都失败了。我试着
1)使用zoo包
df = read.zoo(data_file, sep=';', dec=',', format="%Y-%m-%d", header=T)
但数据在小数点处被截断。
2)使用带xts的zoo包
df = read.zoo(datafile, sep=';', dec=',', format="%Y-%m-%d", header=T)
df_ts = ts(df)
日期无处可见,索引只是一系列数字,如
1 123.22 22.77 99
3)使用read.csv和ts
df = read.zoo(datafile, sep=';', dec=',', format="%Y-%m-%d", header=T)
df_ts = ts(df)
4)尝试使用xts
df = read.csv(data_file, sep=';', header=T, dec=',')
tt = as.xts(df[,-1],order.by = as.Date(as.character(df[,1]), format = "%Y-%m-%d"))
forecast(tt)
Error in `tsp<-`(`*tmp*`, value = tsp.y) :
invalid time series parameters specified
结果会丢失有关日期的所有信息,包括ref_date列,现在预测包会产生无意义的结果。
创建forecast
库正在等待的对象的正确方法是什么,可以生成预测,维护日期,包括在图中?
答案 0 :(得分:1)
我一直在将CSV数据摔跤到ZOO / XTS对象中并同情 - 痛苦。
建议在as_xts()
包
tidyquant
as_xts(read_csv(file),ref_date)
您可能需要将coredata()
对象中生成的XTS
强制转换为数字。