2017-03-29 34 views
2

一個專欄中,我有一個CSV格式爲創建TS [R對象從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)使用動物園包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 

結果丟失了有關日期的所有信息,包括ref_date列,現在預測包給出了無意義的結果。

創建對象的正確方法是什麼?forecast圖書館正在等待並可以生成預測,維護日期,包括在圖中?

+0

對不起。 – Ivan

+0

爲什麼你認爲截斷髮生在第一種方法?我在樣本上試了一下,似乎沒有精確度。它抱怨有重複的日期。你使用了什麼版本的'動物園'?我用'zoo_1.7-14'測試過。 – MrFlick

+0

與您的版本相同。我沒有重複的日期,現在修復它。 – Ivan

回答

1

我一直在將CSV數據摔成ZOO/XTS對象,並表示同情 - 痛苦。

建議在tidyquant

as_xts(read_csv(file),ref_date) 

您可能需要在XTS對象要挾導致coredata()回數字使用as_xts()

+0

您可能會切換到'timetk :: tk_xts()',它將替換'tidyquant :: as_xts()'。它更強大,並自動檢測日期列,這是很好的。 –