如何在gtsummary生成的回归表中log(OR)列前添加OR列
实现说明
该需求可以实现,通过gtsummary内置的自定义表格接口即可完成操作,具体思路和代码如下:
核心思路
- OR值本质是log(OR)(即回归原始系数
estimate)的指数转换结果,直接对现有系数列做指数运算即可得到对应OR值 - 调用
modify_table_body()访问表格底层数据框,新增OR值列 - 使用
modify_column_relocate()调整列顺序,将OR列移动到log(OR)列之前 - 对新增的OR列设置显示标签、数值格式化规则,和原有表格的输出风格保持统一
完整可运行代码
library(tidyverse) library(gtsummary) dat <- iris %>% filter(Species != "setosa") glm(Species ~ ., family = binomial(), data = dat) %>% tbl_regression() %>% modify_column_hide(columns = ci) %>% modify_column_unhide(columns = std.error) %>% # 新增OR列,为log(OR)的指数值 modify_table_body( ~ .x %>% mutate(or = exp(estimate)) ) %>% # 设置OR列的显示标签 modify_column_set_label(or = "OR") %>% # 将OR列移动到log(OR)列(对应底层列名为estimate)之前 modify_column_relocate(or, .before = estimate) %>% # 设置OR列保留2位小数,匹配gtsummary默认输出格式 modify_fmt_fun(or = function(x) style_number(x, digits = 2))
内容的提问来源于stack exchange,提问作者Tengku Hanis
相关产品推荐
相关产品推荐

