如何将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
相关产品推荐
相关产品推荐

