2016-01-06 63 views
0

我的投資組合數據的歷史收盤價在XTS格式b填寫投資組合(XTS)

  PRENOM  RIC  
2015-09-12 "johnn"  "ML.PA" 
2015-09-19 "johnn"  "RNO.PA" 
2015-09-19 "vincent" "AIR.PA" 
2015-09-19 "vincent" "MC.PA" 

我想與收盤價爲每隻股票添加一列。到目前爲止,我已經使用了quantmode的getSymbols和一個醜陋的for循環tryCatch用於跳過不起作用的符號。

require(quantmod) 
for(i in 1:length(b)) 
{ 
    tryCatch({ 
a<-getSymbols(b[i]$RIC,auto.assign=FALSE) 
b$Amount[i]<-Cl(a[as.Date(index(b[i]))])}, 
error=function(e){}) 
} 

這做什麼,我需要,但許多日期/符號需要非常非常長的上一個更大的XTS,我正在尋找一個更快的解決方案。

+0

我剛剛添加了包含'Cl'的require(quandmod)'。我從來沒有使用'data.table',所以我擔心機會成本。你有任何樣品讓我開始正確的方向嗎? – marco

回答

1

這是一個解決方案:

當前您正在下載數據數年。您可以通過將數據限制爲單一日期來加速。

a<-getSymbols(b[i]$RIC,auto.assign=FALSE, 
       from=as.Date(index(b[i]), to=as.Date(index(b[i]) 
+0

謝謝,這真的很明顯。在迭代之前,它仍然可以在每個領域下載所有RIC,甚至更快。你能編輯你的代碼並關閉括號嗎? – marco