R中如何使用getSymbols.yahoo按对应起始日期批量下载股票数据
解决方案
getSymbols.yahoo的from参数原生仅支持传入单个日期值,传入向量时只会取第一个值应用到所有标的,因此无法直接通过传向量实现不同标的不同起始日期的下载需求。你可以使用R基础库自带的mapply函数实现参数配对调用,无需引入额外依赖,且完全保留原有标的和日期的对应顺序:
library(quantmod) # 定义标的和对应起始日期,原有顺序保持不变 someSymbols <- c("RMO", "NKLA", "JD", "AAPL", "IBM", "SPCE", "MRNA", "MPNGF") someDates <- as.Date(c(18659, 18659, 18659, 18901, 18901, 18659, 18901, 18659), origin = "1970-01-01") # 配对调用下载接口,数据自动赋值到全局环境 mapply( function(sym, dt) { getSymbols.yahoo(sym, auto.assign = TRUE, env = globalenv(), from = dt) }, sym = someSymbols, dt = someDates )
效果说明
- 严格按照
someSymbols和someDates的顺序一一匹配下载规则 - 下载的标的数据自动存入全局环境,和原生批量调用的使用体验一致
- 仅依赖R基础库与
quantmod包,完全兼容你提供的R 4.1.1版本及对应macOS系统环境
内容的提问来源于stack exchange,提问作者pdeli
相关产品推荐
相关产品推荐

