You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lapply+getSymbols仅返回股票名称?如何获取行情数据?

解决方法

问题出在getSymbols()的auto.assign参数设置上:

  • 当auto.assign = TRUE时,函数会将股票行情数据直接存入全局环境,而函数本身仅返回股票代码字符串,这就是你的tickers_data列表只包含代码的原因。

方案一:直接让函数返回行情数据

将auto.assign设为FALSE,此时getSymbols()会直接返回对应股票的行情数据,lapply就能把这些数据收集到列表中:

library(quantmod)
tickers <- c("AAPL","MSFT")
tickers_data <- lapply(tickers, function(x) { getSymbols(x, src = "yahoo", auto.assign = FALSE)})

方案二:从全局环境提取已加载的数据

如果已经执行过原代码(数据已存入全局环境),可以通过get()函数从全局环境中提取数据并生成列表:

# 先确保数据已加载到全局环境
library(quantmod)
tickers <- c("AAPL","MSFT")
lapply(tickers, function(x) { getSymbols(x, src = "yahoo", auto.assign = TRUE)})
# 提取数据到列表
tickers_data <- lapply(tickers, get)

执行上述任意方案后,运行print(tickers_data)就能看到每个列表元素都是包含OHLCV(开盘/最高/最低/收盘/成交量)的行情数据对象。

内容的提问来源于stack exchange,提问作者konglr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:02:13