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

如何在stargazer多模型表格中同时添加因变量标签与列标签

问题

需要在stargazer生成的多模型表格中同时实现以下需求:

  • 所有模型因变量相同,但需手动指定分组的因变量标签(区分不同模型组的核心变量差异)
  • 保留列标签设置(标记每组内的模型是否包含平方项)
  • 通过column.separate = c(2, 2)将4列模型按2列一组拆分
解决方法

stargazer默认在所有模型因变量相同时只会显示一次因变量标签,且无法直接同时渲染分组的因变量标签和列标签。因此需要通过自定义LaTeX表头的方式实现,核心思路是关闭默认表头,手动添加包含跨列因变量标签和列标签的表头行。

修改后的代码

library(stargazer)

# 示例模型
model1 <- lm(mpg ~ cyl + hp, data = mtcars)
model2 <- lm(mpg ~ cyl + hp + hp^2, data = mtcars)
model3 <- lm(mpg ~ cyl + wt, data = mtcars) 
model4 <- lm(mpg ~ cyl + wt + wt^2, data = mtcars)  

stargazer(list(model1, model2, model3, model4),
          type = "latex",
          title = "Test on dep.var. labels",
          header = FALSE,  # 关闭默认表头,手动自定义
          column.separate = c(2, 2),  
          column.sep.width = "0.25pt", 
          table.layout = "=d-c-#-t-sa=n", 
          # 添加自定义表头行:第一行是跨列的因变量标签,第二行是列标签
          add.lines = list(
            c("", "\\multicolumn{2}{c}{hp}", "\\multicolumn{2}{c}{wt}"),
            c("", "no sq.", "sq", "no sq.", "sq"),
            c("Additional stats to be reported", NA, NA, NA, NA)
          ))

关键修改说明

  1. 关闭默认表头:设置header = FALSE,避免stargazer自动生成的表头覆盖自定义内容
  2. 自定义表头行:
    • 第一行用\multicolumn{2}{c}{hp}和\multicolumn{2}{c}{wt}实现跨列的因变量分组标签,满足区分模型组的需求
    • 第二行直接添加列标签no sq.和sq,对应原列标签设置的需求
  3. 保留列分组:column.separate = c(2,2)维持两组模型列之间的间距,保证表格结构清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:52:43