在R语言中使用quantmod的getSymbols时遭遇Google Error 403问题
解决quantmod中getSymbols调用谷歌财经失败的问题
嘿,这个问题我太熟了!你碰到的坑其实是因为谷歌财经的历史数据接口早就被官方停用了,所以quantmod默认调用谷歌源的时候就会报这种打不开URL的错误,警告信息也是同样的原因导致的。下面给你几个靠谱的解决办法:
方法一:切换到雅虎财经数据源
雅虎财经是目前quantmod支持的稳定数据源之一,操作很简单:
- 临时指定数据源:调用
getSymbols时加上src = "yahoo"参数就行,示例代码:library(quantmod) getSymbols("INTC", src = "yahoo", from = "2014-11-24", to = "2018-03-21") - 设置全局默认数据源:如果你不想每次都写
src参数,可以先设置全局选项,之后直接调用getSymbols即可:
注意:如果你的quantmod版本比较旧,建议先更新包:options(getSymbols.default.src = "yahoo") getSymbols("INTC", from = "2014-11-24", to = "2018-03-21")install.packages("quantmod"),确保适配雅虎的最新接口。
方法二:使用Alpha Vantage数据源
Alpha Vantage提供免费的股票数据API,需要先去官方平台免费申请一个API密钥,然后按以下步骤操作:
- 设置API密钥:
setDefaults(getSymbols.av, api.key = "你的API密钥") - 调用
getSymbols时指定src = "av":getSymbols("INTC", src = "av", from = "2014-11-24", to = "2018-03-21")
方法三:用tidyquant包获取数据
如果你习惯用tidyverse风格的分析,tidyquant包的tq_get函数更友好,默认调用雅虎数据源,返回的是tibble格式,方便后续分析:
- 安装并加载包:
install.packages("tidyquant") library(tidyquant) - 获取数据:
intc_data <- tq_get("INTC", get = "stock.prices", from = "2014-11-24", to = "2018-03-21")
内容的提问来源于stack exchange,提问作者Makenshi




