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

如何为fixest::etable()创建支持多参数的包装函数?

解决fixest::etable包装函数的报错问题

问题原因

直接通过etable(...)传递参数时,etable内部在评估headers等参数时依赖原始调用环境中的...,包装函数的...传递后无法匹配这个上下文,导致报错。

解决方案:使用do.call传递参数

通过do.call将...解析为etable的独立参数,既能传递模型(单个或列表),也能传递其他配置参数:

library(fixest)

mod <- feols(mpg ~ disp, data = mtcars)
mod2 <- feols(mpg ~ disp + hp, data = mtcars)

my_etable <- function(...) {
  do.call(etable, list(...))
}

验证使用场景

  1. 单个模型+配置参数:
my_etable(mod, se.below = TRUE)
  1. 模型列表+配置参数:
my_etable(list(mod, mod2), se.below = TRUE, title = "对比两个回归模型")
  1. 多个模型作为独立参数传递:
my_etable(mod, mod2, digits = 3)

为什么之前的方式不行

直接将...转为列表传递给etable(etable(m))时,所有参数会被当成第一个参数(模型/模型列表)的一部分,导致配置参数被错误识别,同时无法支持多个模型作为独立参数的传递方式。而do.call会将列表中的每个元素对应到etable的各个参数位置,完全还原原始调用逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:59:56