如何为modelsummary输出表格添加系数分组行标题
R语言modelsummary回归系数分组添加行标题实现方法
给系数加分组行标题直接用shape+group_map两个参数搭配就能实现,不需要手动改模型输出或者做表格拼接,具体用法如下:
参数说明
shape:用来定义表格的行列结构,要给行方向的系数加分组,直接传公式自定义分组列名 ~ model即可,比如我们把分组列命名为「变量类型」,就写变量类型 ~ modelgroup_map:接收命名列表,列表的名称就是你要显示的分组行标题,列表内的元素是对应分组下包含的所有回归系数的原始名称,和模型coef()输出的变量名完全一致就能自动匹配归类。
实操代码
基于你提供的测试代码,举个实际分组的例子:把气缸数cyl归到「车辆基础属性」组,排量disp、马力hp归到「动力性能参数」组,截距单独归为「常数项」组,代码如下:
library(modelsummary) ols1 <- lm(mpg ~ cyl + disp + hp, data = mtcars, na.action = na.omit ) # 配置分组规则:列表顺序就是表格里分组的显示顺序 my_group <- list( "常数项" = "(Intercept)", "车辆基础属性" = "cyl", "动力性能参数" = c("disp", "hp") ) modelsummary(ols1, title = "Table 1", stars = TRUE, shape = 变量类型 ~ model, group_map = my_group )
注意事项
- 分组里写的系数名必须和模型输出的原始变量名完全匹配,存在因子变量、交互项的时候,直接对照
coef(你的模型对象)输出的名称写就行,匹配错了系数会跑到分组外面 - 不想显示的系数(比如截距)不用写到分组规则里,直接加
coef_omit = "要隐藏的系数名"参数即可 - 多模型并排输出的场景这个方法同样适用,只要不同模型里同组的变量名一致,分组规则会自动适配所有模型列
- 分组标题默认加粗居左显示,不需要额外调整格式,要改样式的话可以配合
style相关参数自定义。
内容的提问来源于stack exchange,提问作者Reuben Long
相关产品推荐
相关产品推荐

