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

如何将nlme模型summary的tTable转换为可视化表格?

提取LME模型结果并生成规范表格

第一步:提取tTable并转换为数据框

从nlme::lme模型的汇总结果中提取tTable,转为可编辑的数据框并保留变量名:

library(nlme)
# 假设已拟合完成LME模型(示例)
model <- lme(dep_var ~ ind_var1 + ind_var2, random = ~1 | group_var, data = df3)
# 提取tTable并转为数据框,补充变量名列
ttable_df <- as.data.frame(summary(model)$tTable)
ttable_df$Variable <- rownames(ttable_df)
# 调整列顺序,将变量名放在最前
ttable_df <- ttable_df[, c("Variable", names(ttable_df)[-ncol(ttable_df)])]
rownames(ttable_df) <- NULL

用flextable生成表格

library(flextable)
# 创建表格对象并设置表头
ft <- flextable(ttable_df) %>%
  set_header_labels(
    Variable = "变量名",
    Value = "估计值",
    Std.Error = "标准误",
    DF = "自由度",
    t.value = "t值",
    p.value = "P值"
  ) %>%
  theme_box() %>% # 添加边框样式
  align(align = "center", part = "all") %>% # 全局居中对齐
  autofit() # 自动适配列宽

# 预览或导出表格
ft

用gtsummary生成专业统计表格

gtsummary可直接读取LME模型,无需手动提取tTable,更简便:

library(gtsummary)
# 直接基于模型生成汇总表
tbl <- tbl_regression(
  model,
  intercept = TRUE, # 保留截距项
  label = list(
    ind_var1 ~ "自变量1",
    ind_var2 ~ "自变量2",
    `(Intercept)` ~ "截距项"
  )
) %>%
  modify_pvalue(pvalue_fun = ~style_pvalue(.x, digits = 3)) %>% # 格式化P值
  modify_header(
    label = "**变量名**",
    estimate = "**估计值**",
    std.error = "**标准误**",
    statistic = "**t值**",
    p.value = "**P值**"
  )

# 转为flextable格式输出
as_flex_table(tbl)

用kableExtra生成表格

library(kableExtra)
library(knitr)
# 生成带样式的表格
kbl(
  ttable_df,
  col.names = c("变量名", "估计值", "标准误", "自由度", "t值", "P值"),
  align = "c",
  caption = "LME模型固定效应结果汇总"
) %>%
  kable_styling(
    full_width = FALSE,
    bootstrap_options = c("striped", "hover")
  ) %>%
  row_spec(0, bold = TRUE) %>% # 表头加粗
  column_spec(1, bold = TRUE) # 变量名列加粗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:25:04