如何对R中lmer()/lm()输出的Estimate值取对数并生成同格式表格?
获取lmer模型Est值对数转换后的标准化表格
以下是两种实用的操作方法,适配summ()(来自jtools包)的输出结果:
方法1:手动提取并处理后生成表格
- 先拟合模型并保存
summ()的输出结果:# 加载所需包 library(lme4) library(jtools) # 拟合混合效应模型(示例) fit <- lmer(Response ~ Feature1 + Feature2 + (1|Group), data = your_data) # 保存summ的结果 fit_summ <- summ(fit) - 提取系数表并对Est列做对数转换:
# 提取summ结果中的系数表(默认存储在$coef) coef_table <- fit_summ$coef # 对Est列取自然对数,如需常用对数替换为log10() coef_table$log_Est <- log(coef_table$Est) - 输出格式统一的表格:
使用knitr包生成标准化的可导出表格:library(knitr) kable(coef_table[, c("Est", "log_Est", "SE", "t", "p")], caption = "原始Est值与对数转换结果", digits = 3)
方法2:借助sjPlot快速生成美观表格
如果需要更易读的可视化表格,sjPlot可以直接处理转换后的数据:
library(sjPlot) # 提取系数并添加对数转换列 coef_data <- as.data.frame(fit_summ$coef) coef_data$log_Est <- log(coef_data$Est) # 生成格式化表格 tab_df(coef_data[, c("Est", "log_Est", "SE", "p")], title = "特征Est值及其对数转换结果", col.header = c("原始Est", "对数Est", "标准误", "P值"))
关键注意点
- 若Est值存在0或负数,直接取对数会报错,可根据需求做偏移处理(如
log(Est + 1)),或检查模型系数的合理性 - 对数转换的底数可按需切换:自然对数用
log(),常用对数用log10(),以2为底用log2()
内容的提问来源于stack exchange,提问作者Kiki
相关产品推荐
相关产品推荐

