2015-03-09 2 views
1

Я пытаюсь загрузить несколько акций из Google, но каждый раз, когда соединение останавливается, R останавливает цикл. Как я могу справиться с этой проблемой?Обработка интернет-соединения R

stocks <- c(
    'MSFT', 
    'GOOG', 
    ... 
) 



for (symbol in stocks) 
{ 
    stock_price <- getSymbols(symbol,src='google', from=startDate,to=endDate,auto.assign = FALSE) 
    prices[,j] <- stock_price[,1] 
    j <- j + 1 


} 
+1

'? Try'. '? tryCatch' – hrbrmstr

ответ

1

Из инструкции R «quantmod.pdf:

If auto.assign=FALSE or env=NULL (as of 0.4-0) the data will be returned
from the call, and will require the user to assign the results himself.
Note that only one symbol at a time may be requested when auto assignment is disabled.

Вы пытаетесь запросить более одного символа билета в то время с параметром auto.assign равным false и это не разрешено. Тем не менее, вы должны иметь возможность сразу получить все свои символы, адаптировав следующий код:

data <- new.env() 

getSymbols.extra(stocks, src = 'google', from = startDate, to = endDate, env = data, auto.assign = T) 
plot(data$MSFT) 

Обратите особое внимание на R manual для getSymbols

"Data is fetched through one of the available getSymbols methods and saved in the env specified - the .GloblEnv by default. 
+0

Я думаю, что это неправильно, поскольку Filipe уже использует' auto.assign = FALSE'. –

+0

Я думаю, это не помогает полностью, потому что я хотел бы получить все данные только в одном объекте. Таким образом, я могу запускать циклы/векторизованные операции через все запасы с небольшим усилием –