有没有办法抑制 R 中 tbl_regression 函数中的 p 值?

问题描述

为了测试疾病组(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 对象,则可以按如下方式修改查看器窗格中显示的表格主体。在这里,我使用 dplyrselect 函数(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))