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

如何在modelsummary三面板回归表中跳过指定模型并显示NA/--

实现三面板表格并指定位置显示NA/“--”

可以通过modelsummary结合modify_table_body函数轻松实现这个需求,直接在生成的表格中定位目标单元格并修改内容。以下是具体步骤和代码:

方法:生成表格后修改目标单元格

  1. 按原代码生成结构正确的模型列表(3个面板,每个面板3个模型);
  2. 调用modelsummary生成基础表格;
  3. 使用modify_table_body定位中间面板的第二个模型对应的系数单元格,将其替换为--或NA。

完整代码示例

library(modelsummary)
library(dplyr)

# 设置随机种子保证结果可重复
set.seed(123)
y <- rnorm(5)

# 生成原始模型列表
models <- list()
for (i in 1:3) {
  models[[length(models) + 1]] <- lm(y ~ rnorm(5))
  models[[length(models) + 1]] <- lm(y ~ rnorm(5))
  models[[length(models) + 1]] <- lm(y ~ rnorm(5))
}
models <- list(models[1:3], models[4:6], models[7:9])

# 生成表格并修改目标位置内容
tab <- modelsummary(
  models, 
  shape = 'rbind', 
  gof_map = c(""), 
  coef_omit = "Intercept", 
  estimate = "{estimate}", 
  statistic = NULL
) %>%
  modify_table_body(function(x) {
    # 定位中间面板(section为"panel 2")的第二列(model2),替换为"--"
    x <- x %>%
      mutate(model2 = ifelse(section == "panel 2", "--", model2))
    return(x)
  })

# 输出表格
tab

说明

  • modify_table_body允许直接操作表格的底层数据框,通过section列识别不同面板,model2对应每个面板的第二个模型列;
  • 如果需要显示NA而非--,只需将代码中的"--"替换为NA即可;
  • 这种方法无需修改原始模型结构,直接在表格生成后调整,简洁高效。

内容的提问来源于stack exchange,提问作者George B. Y.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:53:36