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

Nik*_*pal 3 r list quantmod

这是我正在运行的代码

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)
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取从中获取的数据帧列表getSymbols以存储在Stocks. 问题是getSymbols直接将数据帧保存到全局环境仅保存列表中Stocks的字符。companies

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

如有任何帮助,我们将不胜感激..提前致谢!

mar*_*kus 5

另一种选择是lapply

library(quantmod)
Stocks <- lapply(companies, getSymbols, auto.assign = FALSE)
Stocks <- setNames(Stocks, companies)
Run Code Online (Sandbox Code Playgroud)

?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
Run Code Online (Sandbox Code Playgroud)