如何在tidymodels工作流中生成stargazer风格的学术回归表
基于
broom::tidy()对象生成stargazer风格出版级系数表的解决方案 首选方案:使用modelsummary包
modelsummary是专门为统计模型输出设计的工具,原生支持broom::tidy()格式的输出,可直接生成符合出版要求的LaTeX、HTML、Word等格式表格,默认输出风格和stargazer高度一致,自定义灵活度远高于stargazer。- 基础用法示例:
如果你有多个待输出的模型对象,可直接传入生成多模型对比表:
如果你已经提前得到了整理好的library(modelsummary) # 示例模型 lm1 <- lm(mpg ~ hp + wt, data = mtcars) lm2 <- lm(mpg ~ hp + wt + am, data = mtcars) # 生成LaTeX格式的stargazer风格系数表 modelsummary(list("模型1" = lm1, "模型2" = lm2), output = "latex")broom::tidy()结果,可直接通过tidy参数传入:tidy_lm1 <- broom::tidy(lm1, conf.int = TRUE) tidy_lm2 <- broom::tidy(lm2, conf.int = TRUE) modelsummary(list(tidy_lm1, tidy_lm2), output = "latex", gof_map = NULL) - 可自定义的内容包括显著性星号规则、标准误/置信区间展示形式、拟合优度指标筛选、控制变量折叠等,完全满足社科、经管等领域的出版规范要求,在Rmd中直接调用可自动嵌入生成的PDF/Word文档。
适配方案:将tidy结果传入stargazer直接生成原生风格表格
- 如果你需要完全一致的stargazer原生输出样式,可手动提取
broom::tidy()结果中的系数、标准误、p值传入stargazer对应参数,跳过stargazer默认的模型解析步骤:library(stargazer) tidy_lm1 <- broom::tidy(lm1) stargazer(lm1, coef = list(tidy_lm1$estimate), se = list(tidy_lm1$std.error), p = list(tidy_lm1$p.value), type = "latex", title = "回归结果") - 该方法适用于已经习惯stargazer格式、仅需要基于整理后的tidy结果输出表格的场景。
gt适配方案:使用gtsummary扩展gt的出版级输出能力
- 如果你更熟悉gt的语法,可搭配
gtsummary包基于broom::tidy()对象生成系数表,最终通过as_latex()方法导出LaTeX代码:library(gtsummary) tbl_regression(lm1) |> as_latex() - 可通过主题调整函数将表格样式修改为和stargazer一致的三线表、右对齐系数列、显著性星号标注等格式。
内容的提问来源于stack exchange,提问作者Rob Lytle
相关产品推荐
相关产品推荐

