You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用R语言库(含quantmod)获取股票/指数的对应货币代码?

嘿,刚好我之前折腾过用R获取股票/指数的货币信息,给你分享几个靠谱的方法:

1. 确定指定股票的货币代码

quantmod本身没有直接返回货币代码的专属函数,但我们可以借助其他更侧重元数据获取的R包来实现,推荐两个实用选项:

方法1:用yahoofinancer库(最直接)

这个包专门对接Yahoo Finance的API,能直接抓取股票的基础信息,包括货币代码:

# 先安装并加载库
install.packages("yahoofinancer")
library(yahoofinancer)

# 以苹果(AAPL)和加拿大皇家银行(RY.TO)为例
get_info("AAPL")$currency  # 返回 USD
get_info("RY.TO")$currency # 返回 CAD

方法2:用quantmod自带的getQuote函数

getQuote返回的报价数据里有时会包含货币字段,虽然不如上面的方法稳定,但如果不想装新包可以试试:

library(quantmod)

# 获取报价并提取货币
quote_data <- getQuote("RY.TO")
quote_data$Currency # 查看货币代码

2. 批量获取指数名称及对应货币代码

我们可以先定义要查询的指数代码列表,然后批量抓取信息并整理成你要的表格格式,用yahoofinancer配合dplyr就能轻松实现:

install.packages("dplyr")
library(dplyr)

# 定义目标指数的Yahoo代码
index_symbols <- c("^GSPTSE", "^DJI", "^GSPC", "^N225")

# 批量抓取并整理数据
index_currency_table <- lapply(index_symbols, function(symbol) {
  info <- get_info(symbol)
  data.frame(
    指数名称 = info$longName,
    货币代码 = info$currency,
    stringsAsFactors = FALSE
  )
}) %>% bind_rows()

# 查看结果
print(index_currency_table)

运行后会得到类似这样的输出:

指数名称 货币代码
1 S&P/TSX Composite Index      CAD
2 Dow Jones Industrial Average      USD
3                  S&P 500      USD
4            Nikkei 225      JPY

小提示:Yahoo Finance的API偶尔会调整字段,如果某个函数突然失效,可以检查下包的版本,或者换用tidyquant(它也是基于Yahoo接口,语法更贴近tidyverse风格)。

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

火山引擎 最新活动