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

如何在modelsummary中分离因子变量名与因子水平?

通用解决方案:给modelsummary输出的因子变量名添加下划线分隔水平值

可以通过modelsummary的coef_rename参数结合正则表达式实现通用处理,无需手动指定每个变量:

  1. 定义一个通用重命名函数,用正则匹配并替换因子变量的命名格式:
library(modelsummary)

rename_factors <- function(x) {
  # 匹配factor(xxx)后接数字的模式,在括号与数字间插入下划线
  gsub("(factor\\([^)]+\\))(\\d+)", "\\1_\\2", x)
}
  1. 拟合模型并调用modelsummary时传入该函数:
# 单因子变量示例
mod <- lm(mpg ~ factor(cyl), mtcars)
modelsummary(mod, coef_rename = rename_factors)

运行后,原输出中的factor(cyl)6、factor(cyl)8会自动变为factor(cyl)_6、factor(cyl)_8。

多因子变量验证

这个方案对所有符合factor(变量名)水平值格式的项都生效,比如同时包含多个因子变量的模型:

mod2 <- lm(mpg ~ factor(cyl) + factor(gear), mtcars)
modelsummary(mod2, coef_rename = rename_factors)

输出里的factor(gear)4、factor(gear)5会被替换为factor(gear)_4、factor(gear)_5。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:22:04