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

解决tidy与flextable构建lmer模型系数表格时的报错及批量生成RMarkdown兼容表格方案

解决方法:提取lmer模型列表系数并生成可在RMarkdown中显示的表格

你的报错是因为代码里的内层map误用了——你的models_list_1每个元素是lmer模型的summary对象(不是嵌套列表),内层map会遍历summary对象的各个组件(比如call是字符类型),而broom::tidy无法处理字符类型的对象,所以才会出现No tidy method for objects of class character的错误。

下面是两种可行的解决方案,根据你的需求选择:


方案1:为每个模型单独生成系数表格

如果你想给每个分组的模型都生成独立的表格,可以直接遍历模型summary列表,用broom::tidy提取系数后转成flextable:

library(purrr)
library(broom)
library(flextable)

# 遍历每个模型summary,生成对应的flextable
model_coef_tables <- models_list_1 %>%
  map(function(model_summary) {
    # 提取系数,可添加conf.int=T获取置信区间
    tidy(model_summary, conf.int = TRUE) %>%
      flextable() %>%
      set_caption("模型固定效应系数") %>%
      autofit() # 自动调整列宽
  })

在RMarkdown中,你可以通过索引逐个输出表格:

# 输出第一个分组的模型表格
model_coef_tables[[1]]

# 输出第二个分组的模型表格(如果有的话)
model_coef_tables[[2]]

方案2:合并所有模型的系数到一个汇总表格

如果你想把所有分组模型的系数合并成一个大表格(带分组标识),可以这样做:

library(purrr)
library(broom)
library(dplyr)
library(flextable)

# 合并所有模型系数,添加分组标签
combined_coef_table <- models_list_1 %>%
  # 给每个模型命名为对应的group值(从原数据集获取)
  set_names(unique(data_long$group)) %>%
  # 遍历每个模型,提取系数并添加分组列
  imap(function(model_summary, group_name) {
    tidy(model_summary, conf.int = TRUE) %>%
      mutate(group = group_name) %>%
      relocate(group, .before = term) # 将分组列放到最前面
  }) %>%
  bind_rows() %>% # 合并所有数据框
  flextable() %>%
  set_caption("所有分组模型系数汇总") %>%
  autofit()

在RMarkdown中直接输出这个汇总表格即可:

combined_coef_table

优化建议:保留原模型而非先做summary

其实你在创建models_list_1的时候,可以不用先调用summary(),直接保留lmer模型对象,这样broom::tidy的处理会更灵活(比如可以选择只提取固定效应或包含随机效应):

# 重新创建模型列表(不提前做summary)
models_list_1 <- data_long %>% 
  group_by(group) %>% 
  do(fit = lmerTest::lmer(values ~ group1*group2 + (1 |variable), data = .)) %>% 
  pull(fit)

# 提取固定效应系数(effects="fixed")
model_tables <- models_list_1 %>%
  map(function(model) {
    tidy(model, conf.int = TRUE, effects = "fixed") %>%
      flextable() %>%
      set_caption("固定效应系数表") %>%
      autofit()
  })

这样可以避免处理summary对象带来的额外问题,同时能更精准地控制提取的系数类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:02:39