如何将 getSymbols(quantmod 库)中的数据存储到列表中?

How do I store data from getSymbols (quantmod library) to a list?

这是我的代码 运行

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 中的字符。

如何将全局环境中的数据帧保存到列表中?

感谢任何帮助。提前致谢!

使用以下参数作为 getSymbols(i, auto.assign=FALSE)

另一种选择是lapply

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

来自 ?getSymbols

auto.assign : should results be loaded to env If FALSE, return results instead. As of 0.4-0, this is the same as setting env=NULL. Defaults to 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

在我的 quantmod (0.4.0) 版本中,需要在函数参数中设置 env=NULL,然后返回整个数据帧