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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:09:03