从CSV文件中创建一个ts R对象,其中日期作为多变量序列的列

从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

我有一个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 = 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()
。它更健壮,自动检测日期列,这很好。