如何在tbl_regression中操作行名?

时间:2020-06-22 23:32:59

标签: r gtsummary

在在线示例中,有:

mod1 <- glm(response ~ trt + age + grade, trial, family = binomial)

t1 <- tbl_regression(mod1, exponentiate = TRUE)

它会产生一个不错的回归表,但是我该如何编写代码来仅显示1级而不是所有1至3级。并且,如果存在一行本来是二进制(0或1)的行,我该如何选择真正的呢?

我尝试了label = list(.....)value = list(...),但这不是我在gtsummary的软件包信息中看到的选项,并且在尝试时不起作用。必须有一种简单的方法来执行此操作,否则我在撰写本文时会不够努力。谢谢!

1 个答案:

答案 0 :(得分:2)

问题1:成绩是一个具有三个级别的变量,您希望在单行中显示此结果。您可以使用Wald或Likelihood ratio测试来测试等级的显着性,并使用combine_terms()函数打印单个p值。请注意,您将不再看到与II级和III级相关的2个beta系数。

问题2:tbl_regression()模型将在输入glm()时打印结果。数字变量被解释为连续的,并打印在一行上。所有其他打印在多行上。如果您的变量编码为0/1,它将在单行上打印。要显示两个级别,可以在其周围添加factor()。如果您处于相反的情况,即在多行上打印二进制变量并希望将其显示在单行上,则可以使用tbl_regression(show_single_row=)参数。

示例1: 在单行上显示成绩,默认打印"trt"(字符)和"death"(数字0/1)。 "trt"打印两行,"death"打印单行。

library(gtsummary)
glm(response ~ trt + grade + death, trial, family = binomial) %>%
  tbl_regression(exponentiate = TRUE) %>%
  combine_terms(formula_update = . ~ . - grade, test = "LRT")

enter image description here

示例2: 现在,我们将"trt"打印在一行上,"death"将打印在两行上。

glm(response ~ trt + factor(death), trial, family = binomial) %>%
  tbl_regression(
    exponentiate = TRUE,
    show_single_row = trt,
    label = list(
      trt ~ "Drug B vs A (reference group)",
      `factor(death)` ~ "Death"
    )
  ) 

enter image description here