如何将R语言中LMER模型的运行结果导出到Excel文件?
解决方案
报错原因说明
你之前调用broom::tidy()报错是因为原生broom包没有适配lmerModLmerTest类(也就是lmerTest包输出的混合模型对象)的提取方法,需要使用适配混合模型的扩展包broom.mixed完成结果提取,再通过writexl包直接导出为xlsx格式。
具体操作步骤
- 安装并加载所需依赖包
# 首次使用请先安装对应包,后续使用可注释安装命令 install.packages(c("broom.mixed", "writexl")) # 加载依赖包 library(lmerTest) library(broom.mixed) library(writexl)
- 提取模型结果
# 你的原模型代码 m1a <- lmer(RPE ~ (1|Id), data=IMPACT_Longi, REML=FALSE) # 提取固定效应结果:包含系数、标准误、自由度、p值、置信区间等核心指标 fixed_result <- tidy(m1a, effects = "fixed", conf.int = TRUE) # 可选:提取随机效应方差、残差等参数 random_result <- tidy(m1a, effects = "ran_pars", conf.int = TRUE) # 可选:提取模型整体拟合指标(AIC、BIC、R²等) model_fit <- glance(m1a)
- 导出为xlsx格式
# 单个表格直接导出 write_xlsx(fixed_result, path = "空模型运行结果.xlsx") # 若需要将多类结果放在同一个Excel的不同工作表,可传入列表批量导出 output_list <- list( 固定效应结果 = fixed_result, 随机效应参数 = random_result, 模型拟合指标 = model_fit ) write_xlsx(output_list, path = "多模型结果汇总库.xlsx")
批量处理提示
如果需要处理多个变量、多个模型的结果,你可以编写循环或者使用purrr包的批量处理功能,将所有模型的运行结果合并到同一个数据框后统一导出,完全不需要手动复制操作。
内容的提问来源于stack exchange,提问作者Kalagan
相关产品推荐
相关产品推荐

