问题描述
为了测试疾病组(categorical_variable)和疾病(结果;计数)之间是否存在关联,我运行了 3 个负二项式回归模型。
为了显示 OR 和 CI,我使用了 tbl_regression
包中的 gtsummary
函数。但是,此函数显示用逗号分隔的 CI,我希望将它们放在括号之间,并显示 p 值,我想将其全部抑制。
我的代码:
library(gtsummary)
model <- glm(data=data,formula=outcome ~ categorical_variable)
tbl_regression(model,exponentiate = TRUE,include="categorical_variable")
在格式化 CI 和抑制 p 值列方面有什么帮助吗?
我尝试添加 %>% as_gt() %>% cols_hide("p-value")
和 %>% as_gt() %>% cols_hide(columns=vars("p-value"))
但无济于事。它说它不能将 p 值识别为列(如果没有括号也不能工作)。
解决方法
如果 res
是上述问题中的对象是 gtsummary
对象,则可以按如下方式修改查看器窗格中显示的表格主体。在这里,我使用 dplyr
的 select
函数(modify_table_body
需要一个函数)来排除 p 值列。
gtsummary::modify_table_body(res,dplyr::select,-p.value)
我只想使用 base
:
p_val_col<-which(names(res$table_body)=="p.value")
gtsummary::modify_table_body(res,`[`,-p_val_col)
还要修改 ci
的显示(您可能可以编写比这更简单的正则表达式),请按如下方式运行(同时)。可以编写一个函数来一次执行此操作,而不是调用 modify_table_body
两次:
gtsummary::modify_table_body(res,-23) %>%
gtsummary::modify_table_body(.,dplyr::mutate,ci=gsub("(\\d\\.\\d{,4})(,)(\\d\\.\\d{,4})","\\[\\1 \\3\\]",ci))