如何在R语言中获取股票财务信息?求替代quantmod的方案
确实,quantmod的getFinancials()因为Google Finance在2018年关停了相关接口,现在没法用了。给你几个在R里获取股票财务数据(包括NAV、股息、负债等)的替代方案,亲测可用:
1. 使用tidyquant包(对接Yahoo Finance)
tidyquant是tidyverse生态的一部分,整合了Yahoo Finance的数据源,用起来很顺手,适合需要做数据清洗和分析的场景。
安装并使用:
# 安装包 install.packages("tidyquant") library(tidyquant) # 获取AAPL的财务报表(资产负债表、利润表、现金流量表) aapl_fin <- tq_get("AAPL", get = "financials") # 提取负债数据(以资产负债表为例) aapl_liabilities <- aapl_fin %>% filter(section == "Liabilities") # 获取股息数据 aapl_dividends <- tq_get("AAPL", get = "dividends")
特点:和dplyr、ggplot2等tidyverse工具无缝配合,数据格式整洁,适合快速分析。
2. 使用finreportr包(对接SEC EDGAR)
如果需要更权威的美国上市公司财务数据,finreportr直接从SEC的EDGAR数据库拉取,数据来源官方,准确性高。
安装并使用:
# 安装包 install.packages("finreportr") library(finreportr) # 获取AAPL的年度财务报表 aapl_sec <- get_financial_statements("AAPL", year = 2023, period = "A") # 提取负债数据 aapl_sec_liabilities <- aapl_sec$balance_sheet %>% filter(account == "Total Liabilities") # 获取股息数据 aapl_sec_dividends <- get_dividends("AAPL", year = 2023)
特点:数据权威,但拉取速度可能稍慢,适合需要合规性数据的场景。
3. 使用yahooquery包(Yahoo Finance高级接口)
yahooquery是专门针对Yahoo Finance新API开发的包,功能比tidyquant更全面,能获取包括NAV、机构持仓、期权数据等更多信息。
安装并使用:
# 安装包 install.packages("yahooquery") library(yahooquery) # 创建Ticker对象 aapl <- Ticker("AAPL") # 获取资产负债表(含负债数据) aapl_balance_sheet <- aapl$balance_sheet(frequency = "annual") # 获取股息数据 aapl_divs <- aapl$dividends() # 获取NAV(针对基金/ETF类产品,股票可参考股东权益相关指标) # spy <- Ticker("SPY") # spy_nav <- spy$nav_price()
特点:功能最丰富,支持批量获取多个股票数据,适合深度数据需求。
内容的提问来源于stack exchange,提问作者Alex_P




