gtsummary合并mfx边际效应表的变量标签及表格格式调整问题
解决方案
带自定义标签的表合并
logitmfx()返回的模型对象会剥离原始数据的变量标签,导致两张结果表的变量标识不匹配,触发tbl_merge()报错。手动为边际效应表指定和原回归表一致的变量标签即可解决。
删除置信区间与p值转星号
使用gtsummary自带函数即可实现需求:
hide_columns()可直接隐藏置信区间列add_significance_stars()可将p值转换为星号标注,支持自定义星号阈值和显示格式
完整可运行代码
library(gtsummary) library(mfx) library(labelled) data(sleep) # 设置变量标签 var_label(sleep$extra) <- "Hrs of sleep" # 生成原回归结果表 m1 <- glm(data = sleep, group ~ extra, family = "binomial") |> tbl_regression() |> hide_columns(ci) |> # 隐藏置信区间列 add_significance_stars( pattern = "{estimate}{stars}", # 系数后加星号 hide_p = TRUE # 隐藏原p值列 ) # 生成边际效应表,手动指定与m1一致的变量标签 m2 <- logitmfx(data = sleep, group ~ extra, atmean = TRUE) |> tbl_regression(label = extra ~ "Hrs of sleep") |> hide_columns(ci) |> add_significance_stars( pattern = "{estimate}{stars}", hide_p = TRUE ) # 合并两张表,可自定义列标题 tbl_merge(list(m1, m2), tab_spanner = c("原回归结果", "边际效应"))
自定义调整说明
如果需要修改星号对应p值阈值,可在add_significance_stars()中添加thresholds参数,示例:thresholds = c(0.01 = "***", 0.05 = "**", 0.1 = "*")
内容的提问来源于stack exchange,提问作者Mark R
相关产品推荐
相关产品推荐

