2016-01-06 94 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