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

在Quarto中使用modelsummary为不同面板设置系数名与拟合优度

解决modelsummary面板表格的两个问题

问题分析

  1. 系数重命名失效:TSLS模型的系数仍是qsec而非fit_qsec,原cof_map中的fit_qsec无法匹配实际系数;且全局cof_map无法区分不同面板的同名系数。
  2. 拟合优度统一显示:全局gof_map会应用到所有面板,无法实现分面板控制显示内容。

修改后的代码

library(modelsummary)
library(fixest) # 加载feols所属的fixest包

# 定义不同面板的拟合优度映射
gm_ols <- tibble::tribble(
  ~raw, ~clean, ~fmt,
  "nobs", "N", 0,
  "adj.r.squared", "Adj. $R^2$", 2
)

gm_tsls <- tibble::tribble(
  ~raw, ~clean, ~fmt,
  "nobs", "N", 0
)

# 定义面板模型
panels <- list(
  "OLS" = list(
    "(I)" = feols(mpg ~ 1 + qsec, data = mtcars),
    "(II)" = feols(hp ~ 1 + qsec, data = mtcars)
  ),
  "TSLS" = list(
    "(I)" = feols(mpg ~ 1 | qsec ~ drat, data = mtcars),
    "(II)" = feols(hp ~ 1 | qsec ~ drat, data = mtcars)
  )
)

# 分面板设置参数
modelsummary(
  panels,
  shape = "rbind",
  # 按面板顺序传递独立参数
  panel_args = list(
    list(cof_map = c("qsec" = "OLS"), gof_map = gm_ols),
    list(cof_map = c("qsec" = "TSLS"), gof_map = gm_tsls)
  )
)

关键改动说明

  • 分面板拟合优度控制:定义两个独立的gof_map,通过panel_args分别传递给OLS和TSLS面板,实现第一个面板显示调整R方,第二个面板仅显示样本量。
  • 分面板系数重命名:利用panel_args给每个面板单独设置cof_map,针对各自面板的qsec系数设置不同显示名称,解决同名系数的区分问题。
  • 显式依赖加载:明确加载fixest包,避免feols函数调用的潜在异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:10:55