2016-06-11 29 views
0

我試圖在rda/RData文件中節省庫存時間系列,然後在quantmod中調用它。如何使用quantmod在rda/RData文件中導入時間序列R

我已經下載並使用此代碼

data=getSymbols("AAPL",auto.assign=F) 
save(data,file="AAPL.rda") 
#Cleared environment 

現在我應該怎麼稱呼使用quantmod這RDA/RDATA文件保存AAPL股價時間序列爲RDA/RDATA文件。嘗試這種

getSymbols('AAPL',src='rda') 

但其示出此錯誤在FR [1,-1]

錯誤:尺寸的不正確的數字

下一個問題是,如果我有多個RDA文件(如AAPL.rda,GOOG.rda,F.rda)我應該如何在使用quantmod的環境中調用這些文件。

EDITED

我missied這一點我想從getSymbols()的代替負載()調用,因爲我需要更多的控制,例如在時間序列

getSymbols('AAPL',src='rda',from="2010-02-02",to="2011-01-01") 
+0

保存文件後,清除環境,然後重複代碼 – Eka

+1

好吧,我只是試過這個,我沒有得到錯誤,所以我試圖完全關閉R並重新打開它,我仍然沒有得到錯誤。這對你來說也是一個奇怪的錯誤..我覺得這張照片中缺少一些東西。你可以用一種你以前從未用過的不同的自動收報器來嘗試嗎?並確保你的工作目錄是你保存它的地方,並且當你去加載它時是一樣的 –

+0

我仍然在發生同樣的錯誤。我使用ubutnu 14.04可能是因爲 – Eka

回答

1

來自documentationgetSymbols()在包:

當前可用的src方法有:yahoo,google,MySQL,FRED,csv, RData和oanda。

,你能做些什麼來保存文件,之後加載它,例如,以下內容:

data <- getSymbols("AAPL",auto.assign=FALSE) 
save(data,file="AAPL.rda") 

(開始一個新的R會話,或清除環境等)

要檢索以前保存的數據,我們可以使用

load(file = "AAPL.rda") 

現在的數據集data與AAPL時間序列availab再次。 請注意,應該將而不是分配給對象的輸出load(),如data <- load(file=...)。這是常常造成混淆​​的常見錯誤。本例中的data文件通過load()函數本身進行恢復。

可以獲得加載數據的子集,例如,與

data['2010-02-02::2011-01-01'] 
#> head(data['2010-02-02::2011-01-01']) 
#   AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
#2010-02-02 195.91 196.32 193.38  195.86 174585600  25.75517 
#2010-02-03 195.17 200.20 194.42  199.23 153832000  26.19832 
#2010-02-04 196.73 198.37 191.57  192.05 189413000  25.25416 
#2010-02-05 192.63 196.00 190.85  195.46 212576700  25.70257 
#2010-02-08 195.69 197.88 194.00  194.12 119567700  25.52636 
#2010-02-09 196.42 197.50 194.75  196.19 158221700  25.79856 

編輯:

下面是示出.RData文件如何被使用的示例:

saveSymbols(getSymbols("AAPL"), file.path=getwd()) #saves 'AAPL.RData' in working directory 
rm(AAPL) 
data <- getSymbols("AAPL", src="RData", extension="RData", auto.assign=FALSE) 
#> head(data) 
#   AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
#2007-01-03  86.29  86.58 81.90  83.80 309579900  11.01952 
#2007-01-04  84.05  85.95 83.82  85.66 211815100  11.26411 
#2007-01-05  85.77  86.20 84.40  85.05 208685400  11.18389 
#2007-01-08  85.96  86.53 85.28  85.47 199276700  11.23912 
#2007-01-09  86.45  92.98 85.15  92.57 837324600  12.17276 
#2007-01-10  94.75  97.80 93.45  97.00 738220000  12.75529 

此外編輯:

我可以在評論中確認@ Hack-R發表的言論。儘管文檔以相當隱蔽的方式描述了這一點,但通過閱讀關於getSymbols.rda()的部分,可以明顯看出src="rda"選件仍然作爲getSymbols()的有效參數受支持。事實上,它仍然工作在我的安裝:

data <- getSymbols("AAPL",auto.assign=FALSE) 
save(data,file="AAPL.rda") 
rm(data) 
data <- getSymbols("AAPL", src="rda", auto.assign=FALSE) 

#>head(data) 
#   AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted 
#2007-01-03  86.29  86.58 81.90  83.80 309579900  11.01952 
#2007-01-04  84.05  85.95 83.82  85.66 211815100  11.26411 
#2007-01-05  85.77  86.20 84.40  85.05 208685400  11.18389 
#2007-01-08  85.96  86.53 85.28  85.47 199276700  11.23912 
#2007-01-09  86.45  92.98 85.15  92.57 837324600  12.17276 
#2007-01-10  94.75  97.80 93.45  97.00 738220000  12.75529 

總之,一對夫婦保存,加載,並與quantmod操縱時間序列的變異後,我們似乎又回到了原點:在OP描述的錯誤呢似乎沒有可重複性。

+0

嘿我編輯了這個問題。請參閱編輯的。正如你在你的答案中提到RData是可用的,那麼你能告訴我如何處理RData而不是RDDA – Eka

+0

嘿我redownloded AAPL作爲RData文件,並嘗試此代碼'getSymbols('AAPL',src ='RData')'但它給出這個錯誤文件'AAPL.rda不存在....跳過 [1]「AAPL」' – Eka

+1

@EKA我想他希望你把它保存爲'RData'而不是'.rda'。無論如何,我個人的'rda'對我來說工作得很好。 –