2016-01-06 3 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" 

Я хочу, чтобы добавить столбец с ценой закрытия для каждой акции. До сих пор я использую 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

Я просто добавил 'require (quandmod)' который содержит 'Cl'. Я никогда не использовал '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

 Смежные вопросы

  • Нет связанных вопросов^_^