2015-01-21 7 views
1

Я пытаюсь собрать данные об эффективности взаимного фонда через открытые и закрытые цены от quantmod. Я очистил список из 5000 средств, и я пытаюсь пройти через одну открытую и закрытую цену для каждого фонда. Мне трудно вызвать объект xts, полученный getSymbols(), так как он невидимо отображается в среде. Поскольку объект хранится как его тикер, я попробовал называть его его тикером.Хранение объекта xts, возвращаемого getSymbols

код до сих пор:

## loop thru list and use quantmod to calculate performance from 1/2/14 to 12/31/14 
for(i in 1:4881){ 
    ticker <- tickernames[i] 
    getSymbols(ticker) 
    Open <- ticker["2014-01-02",1] 
    Close <- ticker["2014-12-31",4] 

    performance2014[i] = (Open - Close)/Open 
} 

Есть ли способ, я могу назвать объект с помощью ls()?

+0

Попробуйте 'help (getSymbols)' и найдите 'auto.assign'. –

ответ

1

Ключ должен установить аргумент auto.assign в FALSE в getSymbols. Таким образом вы отключите автоматическое назначение getSymbols глобальной среде.

Вот пример, который должен направлять вас через шаг за шагом:

require(quantmod) 

#Vector of symbols to fetch prices for 
symbols <- c('MSFT','SBUX','GOOGL') 

#Initialize a list to store the fetched prices 
myList <- list() 

#Loop through symbols, fetch prices, and store in myList 
myList <-lapply(symbols, function(x) {getSymbols(x,auto.assign=FALSE)}) 

#Housekeeping 
names(myList) <- symbols 

#Access MSFT prices 
myList[['MSFT']] 

#Access SBUX prices 
myList[['SBUX']] 

#Access GOOGL prices 
myList[['GOOGL']] 

Надежда это ответил на ваш вопрос.

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