如何将lmer模型系数转换为含术语列的数据框?
解决方案
方法一:Base R 原生处理
不需要额外安装包,直接通过提取行名并转为列的方式实现:
# 将系数矩阵转为数据框 coef_df <- as.data.frame(sum.work$coefficients) # 添加Term列,提取原矩阵的行名 coef_df$Term <- rownames(coef_df) # 调整列顺序,把Term列移到最前面 coef_df <- coef_df[, c("Term", colnames(coef_df)[-ncol(coef_df)])] # 清除行名,得到干净的数据框 rownames(coef_df) <- NULL
方法二:使用broom.mixed 包(推荐)
broom.mixed 专门用于整理混合效应模型的输出,能直接生成规范的整洁数据框,非常适合后续用flextable制作表格:
# 先安装包(首次使用时) # install.packages("broom.mixed") library(broom.mixed) # 提取固定效应的整洁结果 tidy_coef <- tidy(lmer.work, effects = "fixed") # 调整列名与原输出一致(可选,根据需求调整) tidy_coef <- tidy_coef[, c("term", "estimate", "std.error", "df", "statistic", "p.value")] colnames(tidy_coef) <- c("Term", "Estimate", "Std. Error", "df", "t value", "Pr(>|t|)")
两种方法得到的数据框都可以直接传入flextable()函数制作演示用表格。
内容的提问来源于stack exchange,提问作者Shawn Hemelstrand
相关产品推荐
相关产品推荐

