从CSV文件中创建一个ts R对象,其中日期作为多变量序列的列
我有一个CSV文件的格式从CSV文件中创建一个ts R对象,其中日期作为多变量序列的列,r,dataframe,R,Dataframe,我有一个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) 使用动物园套餐 df
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) 使用动物园套餐
df = read.zoo(data_file, sep=';', dec=',', format="%Y-%m-%d", header=T)
但数据在小数点处被截断
2) 将zoo包与xts一起使用
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
df=read.csv(数据_文件,sep=';',header=T,dec=','))
tt=as.xts(df[,-1],order.by=as.Date(as.character(df[,1]),format=“%Y-%m-%d”))
预测(tt)
“tsp中的错误我一直在将CSV数据转换成ZOO/XTS对象并表示同情——很痛苦
建议在tidyquant
包中使用asxts()
as_xts(read_csv(file),ref_date)
您可能需要将XTS
对象中的结果coredata()
强制回numeric。对此感到抱歉。您认为第一种方法为什么会发生截断?我在样品上试过了,它似乎没有失去精度。它确实抱怨有重复的日期。您使用了什么版本的zoo
?我用zoo_1.7-14进行了测试。与您的版本相同。我没有重复的日期,现在就修复它。显示数据的read.zoo命令对我有效,但请注意,它生成的是一个zoo对象,而不是名称df
可能暗示的data.frame。那么,将具有ISO日期的CSV文件转换为可与预测包一起使用的对象(dataframe?zoo?ts?)的最佳过程是什么,这将生成一个带有日期而不是整数索引的图形?您可以切换到timetk::tk_xts()
,它将取代tidyquant::as_xts()
。它更健壮,自动检测日期列,这很好。