You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R运行pblapply报match.fun(FUN)参数FUN缺失无默认值问题求助

报错原因分析
  1. 核心错误来自pblapply函数的参数缺失:pblapply是带进度条的lapply扩展函数,要求必须传入两个必填参数,第一个是待遍历的对象,第二个是对每个遍历元素执行的处理函数FUN,你当前的代码仅传入了待遍历的ticker列表,没有指定FUN参数,因此触发argument "FUN" is missing报错。
  2. 附加语法错误:你写的rbindlist行末尾多了一个多余的右括号,即使解决了FUN缺失问题,这行也会抛出语法报错。
修复方案
  • 第一步:先定义你需要的单只股票指标计算函数,函数输入为单个ticker代码,输出为计算完指标的该ticker行情数据,示例代码如下(可根据你实际需要的指标替换内部计算逻辑):
# 单只股票指标计算自定义函数
calc_stock_indicators <- function(cur_ticker) {
  # 提取当前ticker的全部行情数据
  cur_data <- df[df$ticker == cur_ticker, ]
  # 转换为xts格式适配TTR/quantmod的指标函数
  cur_xts <- xts(
    x = cur_data[, c("price.open", "price.high", "price.low", "price.adjusted", "volume")],
    order.by = as.Date(cur_data$ref.date)
  )
  # 示例:计算常用技术指标,可自行增删修改
  cur_data$RSI_14 <- RSI(Cl(cur_xts), n = 14)
  macd_res <- MACD(Cl(cur_xts), nFast = 12, nSlow = 26, nSig = 9)
  cur_data$MACD <- macd_res[, 1]
  cur_data$MACD_SIGNAL <- macd_res[, 2]
  cur_data$MA_5 <- SMA(Cl(cur_xts), n = 5)
  cur_data$MA_20 <- SMA(Cl(cur_xts), n = 20)
  cur_data$BOLL_MID <- BBands(Cl(cur_xts))[, "mavg"]
  return(cur_data)
}
  • 第二步:补全pblapply的FUN参数,传入上面定义的指标计算函数:
## 遍历每个ticker计算指标
df <- pblapply(as.list(unique(df$tickers)), FUN = calc_stock_indicators)
  • 第三步:删除rbindlist行多余的右括号,修正语法:
## 合并所有ticker的计算结果
df <- rbindlist(df, use.names = TRUE)
额外优化建议

你定义的tickers向量中存在重复值^NSEMDCP50,会导致重复下载同一只标的的行情数据,建议提前去重:

tickers <- unique(c("^NSEI","^NSEMDCP50","^NSEMDCP50","NIFTYSMLCAP50.NS","^CNX100"))

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:05