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

如何在modelsummary中显示固定效应估计数量而非仅标记存在?

要让modelsummary生成的表格显示固定效应的估计数量而非仅标记"X",可以用fixest的nfixef()函数提取数量,再通过modelsummary的自定义功能添加到表格里,具体有两种实用方法:

方法一:用add_rows手动添加固定效应数量行

library(fixest)
library(modelsummary)

# 拟合模型
mod1 <- feols(mpg ~ hp | cyl, data = mtcars)
mod2 <- feols(mpg ~ wt | cyl, data = mtcars)
mod3 <- feols(mpg ~ drat | cyl, data = mtcars)

# 提取每个模型中cyl固定效应的估计数量
fe_cyl_counts <- sapply(list(mod1, mod2, mod3), function(m) nfixef(m)[["cyl"]])

# 构造要添加的行数据
fe_row <- data.frame(
  term = "FE: cyl (估计数量)",
  mod1 = fe_cyl_counts[1],
  mod2 = fe_cyl_counts[2],
  mod3 = fe_cyl_counts[3],
  check.names = FALSE
)

# 生成表格:添加自定义行,同时隐藏默认的FE标记行
modelsummary(
  list(mod1, mod2, mod3),
  output = "markdown",
  add_rows = fe_row,
  gof_omit = "FE:"
)

方法二:用custom_gof自定义统计量

这种方法更灵活,适合需要添加多个固定效应统计量的场景:

library(fixest)
library(modelsummary)

mod1 <- feols(mpg ~ hp | cyl, data = mtcars)
mod2 <- feols(mpg ~ wt | cyl, data = mtcars)
mod3 <- feols(mpg ~ drat | cyl, data = mtcars)

# 定义提取cyl固定效应数量的函数
get_cyl_fe_count <- function(model) {
  if ("cyl" %in% names(nfixef(model))) {
    return(nfixef(model)[["cyl"]])
  } else {
    return(NA)
  }
}

# 生成表格时添加自定义统计量,移除默认FE标记行
modelsummary(
  list(mod1, mod2, mod3),
  output = "markdown",
  custom_gof = list(
    "FE: cyl (估计数量)" = get_cyl_fe_count
  ),
  gof_omit = "FE:"
)

说明

  • nfixef()是fixest包自带的函数,专门返回每个固定效应维度的估计数量,比如这里cyl有3个不同取值,所以返回3。
  • gof_omit = "FE:"用来隐藏modelsummary默认生成的仅标记"X"的固定效应行,避免重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:05:21