【问题标题】:Is there a way to supress p-values in tbl_regression function in R?有没有办法抑制 R 中 tbl_regression 函数中的 p 值?
【发布时间】:2021-07-03 04:24:10
【问题描述】:

为了测试疾病组(categorical_variable)和疾病(结果;计数)之间是否存在关联,我正在运行 3 个负二项式回归模型。

为了显示 OR 和 CI,我使用包 gtsummary 中的 tbl_regression 函数。但是,此函数显示用逗号划定的 CI,我希望它们在括号之间,并显示 p 值,我想一起抑制。

我的代码:

library(gtsummary)

model <- glm(data=data, formula=outcome ~ categorical_variable)

tbl_regression(model,
    exponentiate = TRUE, 
    include="categorical_variable") 

对格式化 CI 和抑制 p 值列有任何帮助吗?

我尝试添加%&gt;% as_gt() %&gt;% cols_hide("p-value")%&gt;% as_gt() %&gt;% cols_hide(columns=vars("p-value")),但无济于事。它说它不将 p 值识别为列(没有括号也不起作用)。

【问题讨论】:

  • 能否请您提供此功能来自哪个软件包?否则,如果是data.frame,只删除列?
  • 已编辑帖子!

标签: r regression


【解决方案1】:

正如 Elin 提到的单表案例:

tbl_regression(model,
  exponentiate = TRUE, 
  include="categorical_variable") %>%
  modify_column_hide(columns = p.value)

对于有两个(或更多)回归模型的情况:

tbl_merge(
    tbls = list(tbl_regression(model1),
                tbl_regression(model2))
    )  %>% 
    modify_column_hide(columns = c(p.value_1, p.value_2)

【讨论】:

    【解决方案2】:

    如果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))
    

    【讨论】:

    • 还有modify_column_hide()不会改变对象。
    • @tcvdb1992 请检查编辑。此 RegEx 假定我们将始终拥有 0.00 形式的数字,即 0+点+最多四位数字。
    • 谢谢!我还通过添加 ` modify_column_hide(column=p.value)` 解决了第一个 p 值问题
    • 现在显示的 CI 之间没有“-”。您的代码是否也允许出现这种情况?
    • 抱歉,响应缓慢。如果您仍然需要这个,您可以将\\[\\1 \\3\\] 更改为"\\[\\1-\\3\\]",这将使它们的形式为[0.0001-0.0001](只是随机数)。 @tcvdb1992
    猜你喜欢
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多