Как сохранить данные из getSymbols (библиотеки QuantMod) в список? - PullRequest
0 голосов
/ 13 октября 2018

Вот код, который я запускаю

library(quantmod)
library(tseries)
Stocks={}
companies=c("IOC.BO","BPCL.BO","ONGC.BO","HINDPETRO.BO","GAIL.BO")
for(i in companies){
   Stocks[i]=getSymbols(i)
}

Я пытаюсь получить список фреймов данных, полученных из getSymbols, для хранения в Stocks.Проблема в том, что getSymbols напрямую сохраняет кадры данных в глобальную среду. Stocks сохраняет только символы в companies в списке.

Как сохранить кадры данных в глобальной среде в списке?

Любая помощь приветствуется .. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Другой вариант: lapply

library(quantmod)
Stocks <- lapply(companies, getSymbols, auto.assign = FALSE)
Stocks <- setNames(Stocks, companies)

из ?getSymbols

auto.assign: следует загружать результаты в env Если FALSE, вместо этого возвращать результаты.Начиная с 0,4-0, это то же самое, что и установка env = NULL.По умолчанию TRUE


Используя цикл for, вы можете сделать

companies <- c("IOC.BO", "BPCL.BO", "ONGC.BO", "HINDPETRO.BO", "GAIL.BO")
Stocks <- vector("list", length(companies))

for(i in seq_along(companies)){
  Stocks[[i]] <- getSymbols(name, auto.assign = FALSE)
}
Stocks
0 голосов
/ 13 октября 2018

Используйте следующий аргумент как getSymbols (i, auto.assign = FALSE)

...