gtsummary中tbl_regression输出与绘图的多技术问题咨询
logitmfx 结合 tbl_regression 自定义需求解决方案
1. 按Beta值升序/降序排列
直接通过modify_table_body对表格主体数据按estimate(即Beta值)字段排序即可:
# 按Beta降序排列 sorted_tbl <- tbl_regression(your_logitmfx_model) %>% modify_table_body( ~ .x %>% arrange(desc(estimate)) # 升序则替换为arrange(estimate) )
2. 将标准误(SE)显示在对应Beta值下方
使用add_stat函数将标准误插入到Beta值所在行的下方,配合格式函数统一显示风格:
se_below_tbl <- tbl_regression(your_logitmfx_model, estimate_fun = ~ style_sigfig(.x, digits = 3)) %>% add_stat( fns = ~ style_sigfig(.data$std.error, digits = 3), location = "below" # 指定显示在对应估计值下方 )
3. 自定义显著性星号规则
通过modify_fmt_p自定义p值标记规则,同时添加脚注说明规则:
custom_sig_tbl <- tbl_regression(your_logitmfx_model) %>% modify_fmt_p( pvalue_fun = function(p) { dplyr::case_when( p < 0.001 ~ "***", p < 0.01 ~ "**", p < 0.05 ~ "*", p < 0.1 ~ "+", # 自定义p<0.1的标记 TRUE ~ "" ) } ) %>% modify_footnote( all_stat_cols() ~ "显著性标记: p<0.1(+), p<0.05(*), p<0.01(**), p<0.001(***)" )
4. 修复参考水平显示异常问题
由于logitmfx未被tbl_regression官方支持,需手动指定参考水平并强制显示参考行:
步骤1:拟合模型前设置因子参考水平
# 将分类变量转为因子并指定参考水平 your_data$categorical_var <- factor(your_data$categorical_var, levels = c("reference_level", "level_1", "level_2"))
步骤2:生成表格时强制显示参考行
fixed_ref_tbl <- tbl_regression(your_logitmfx_model, show_reference_rows = TRUE, # 强制显示参考行 label = list(categorical_var ~ "自定义变量名")) %>% modify_table_styling( rows = reference_row, label = glue::glue("参考水平: {levels(your_data$categorical_var)[1]}") # 自定义参考行标签 )
步骤3:修复绘图时的参考标签
# 绘制表格时手动修正x轴标签 plot(fixed_ref_tbl) + ggplot2::scale_x_discrete( labels = function(x) { ifelse(x == "reference_level", "参考水平", x) } )
内容的提问来源于stack exchange,提问作者esteban
相关产品推荐
相关产品推荐

