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

如何用modelsummary在fixest回归表格中显示分组数量?

解决方案:在modelsummary中显示fixest固定效应的分组数

方法1:使用add_rows参数快速添加(内置功能)

从fixest模型对象中直接提取固定效应的分组数,整理后通过add_rows参数插入表格:

library(fixest)
library(modelsummary)

# 拟合模型
reg1 <- feols(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width | Species, data = iris)

# 提取固定效应分组数并整理成表格行格式
fe_groups <- sapply(reg1$fixef, nlevels)
fe_rows <- data.frame(
  term = names(fe_groups),
  reg1 = paste0("分组数 = ", fe_groups),
  check.names = FALSE
)

# 生成带分组数的表格
msummary(reg1, 
         gof_map = c("nobs", "r.squared", "adj.r.squared"),
         add_rows = fe_rows)

方法2:自定义拟合优度条目(整合到GOF区域)

如果希望把分组数和其他拟合优度指标放在同一区域,可以通过custom_functions自定义提取逻辑,配合gof_map统一格式:

# 自定义提取固定效应分组数的函数
extract_fe_count <- function(model) {
  fe_counts <- sapply(model$fixef, nlevels)
  # 整理成modelsummary要求的格式:term, value, section, fmt
  out <- data.frame(
    term = paste0("固定效应:", names(fe_counts)),
    value = fe_counts,
    section = "固定效应分组数",
    fmt = "%.0f"
  )
  return(out)
}

# 生成表格时调用自定义函数
msummary(reg1,
         gof_map = list(
           list(raw = "nobs", clean = "观测数", fmt = "%.0f"),
           list(raw = "r.squared", clean = "R²", fmt = "%.3f"),
           list(raw = "adj.r.squared", clean = "调整后R²", fmt = "%.3f")
         ),
         custom_functions = list(fixest = extract_fe_count))

对于多模型场景,这个自定义函数会自动为每个模型提取对应固定效应的分组数,无需额外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:24:57