【发布时间】:2019-07-24 05:23:32
【问题描述】:
我想将 foreach 的输出导出到环境中。我正在从雅虎财经中提取时间序列数据。
library(quantmod)
library(foreach)
library(parallel)
library(doParallel)
registerDoParallel(cores=2)
hub = new.env()
tickers = c("NKE", "AAPL", "MSFT", "TSLA", "MPC", "PEP", "GIS", "MA","V", "CAT", "KHC", "AMZN", "NFLX", "GS", "MS", "BAC", "GE", "KO", "JPM", "AMAT", "ABT", "BIIB")
#I have tried 2 methods below.
#The first gives me a list of just the ticker names.
#The second puts the data into a list. I am looking for an enviornment
foreach(r = tickers, .packages = "quantmod") %dopar% lapply(r, getSymbols, env = hub)
enviro = foreach(r = tickers, .packages = "quantmod")%dopar% lapply(r, getSymbols, auto.assign = F)
class(enviro)
[1] "list"
环境应该是这样的(当我不在 foreach 循环中运行它时它可以工作)。
hub = new.env()
#the following line of code takes about 1 min. Just a heads up
getSymbols(tickers, env = hub)
【问题讨论】:
标签: r foreach quantmod parallel.foreach doparallel