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

如何使用yahoofinancer批量创建Ticker对象并解决报错问题

解决yahoofinancer批量创建Ticker对象的报错问题

报错原因

Ticker$new()返回的是环境类型的对象,你初始化的x <- c()是原子向量(仅能存储数值、字符等基础类型),无法容纳环境类对象,因此赋值时触发类型不匹配的报错。

解决方案1:直接批量创建全局环境对象

不需要中间向量x,直接在循环里用assign()给每个股票代码创建独立的Ticker对象:

library(yahoofinancer)
stocks <- c("IBM", "AAPL")

for (stock in stocks) {
  # 统一转大写,避免大小写不一致导致的问题
  stock_code <- toupper(stock)
  assign(stock_code, Ticker$new(stock_code))
}

运行后,全局环境里会生成IBM、AAPL等对应的Ticker对象,直接调用即可。

解决方案2:用列表集中存储(推荐)

更符合R编程规范,避免全局环境被大量变量污染,同时方便统一管理所有Ticker对象:

library(yahoofinancer)
stocks <- c("IBM", "AAPL")

# 初始化空列表
ticker_collection <- list()

for (stock in stocks) {
  stock_code <- toupper(stock)
  ticker_collection[[stock_code]] <- Ticker$new(stock_code)
}

# 调用单个对象示例
ticker_collection$IBM
ticker_collection[["AAPL"]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:01:01