如何用getSymbols()仅获取谷歌(GOOG)的调整后价格?
解决方案
要实现你想要的类似yahoo(GOOG)返回谷歌调整后价格的效果,你可以基于quantmod包的getSymbols()写一个简洁的函数,核心是控制数据的返回方式并精准提取调整后价格列。
这里是具体的实现代码:
# 先确保加载quantmod包 library(quantmod) yahoo <- function(symbol = "GOOG") { # 获取指定标的的数据,auto.assign=FALSE避免自动在全局环境创建变量 stock_data <- getSymbols(symbol, auto.assign = FALSE, src = "yahoo") # 提取调整后价格(quantmod提供的Ad()函数可直接获取对应列) adjusted_price <- Ad(stock_data) # 返回调整后价格的时间序列 return(adjusted_price) }
使用方式:
- 直接调用
yahoo(),默认返回谷歌的调整后价格时间序列 - 调用
yahoo("AAPL")就能获取苹果的调整后价格,完全满足你想要的灵活调用需求
关键细节说明:
auto.assign = FALSE:这个参数是核心,默认getSymbols()会把数据以标的名称为变量名加载到全局环境,设置为FALSE后会直接返回数据对象,方便我们在函数内部处理Ad(stock_data):quantmod返回的OHLCV数据对象中,调整后价格对应的列可以用Ad()快捷提取,不用手动去查找列索引- 你可以根据需求修改默认参数
symbol = "GOOG",比如把默认标的改成其他你常用的代码
内容的提问来源于stack exchange,提问作者Edric Jun
相关产品推荐
相关产品推荐

