1

我最近开始使用 {gtsummary} 包来制表回归输出,发现它真的很有帮助!

我遇到的一个问题与生存分析数据的呈现有关。

我想包括每个分类变量的每个级别的事件数量和随访时间长度。

df <- data.frame(
  time = sample(1:1000, 100, replace = TRUE),
  event = sample(0:1, 100, replace = TRUE),
  gender = sample(c("M", "F"), size = 100, replace = TRUE),
  stringsAsFactors = FALSE
)

tbl_uvregression(
  df, 
  method = survival::coxph, 
  y = survival::Surv(time = time, 
                     event = event)
)

默认情况下,输出包括一列,该列N指的是模型中每个变量包含的主题数。我想要这个和后续时间拆分并为分类变量的每个级别呈现gender

这可以使用 {gtsummary} 包来完成,还是我需要单独计算并以某种方式将其合并到表格中?

提前非常感谢!

4

2 回答 2

1

gtsummary所以这是github 上的一个开放问题。一种使用它的解决方案gtsummary会提供一些事件:

tbl_survfit(survfit(Surv(time, event) ~gender, df), times = c(50,100)) %>% 
  add_nevent() %>% 
  add_n()
于 2020-08-19T13:00:07.970 回答
1

计划更新add_n()add_nevent()包含一个参数,以选择性地将 Ns 直接添加到分类变量的级别。

同时,您可以使用这些计数构建tbl_summary()表格,并将它们与 Cox 模型结果合并。下面的示例,在 gtsummary 网站 ( http://www.danieldsjoberg.com/gtsummary/articles/gallery.html#regression-tables-1 )的表格库中有一个类似的示例。

library(gtsummary)
library(dplyr)

df <- data.frame(
  time = sample(1:1000, 100, replace = TRUE),
  event = sample(0:1, 100, replace = TRUE),
  gender = sample(c("M", "F"), size = 100, replace = TRUE),
  stringsAsFactors = FALSE
)

# calculate the total N by gender
tbl_n <- df %>% select(gender) %>% 
  tbl_summary(statistic = everything() ~ "{n}") %>%
  modify_header(stat_0 ~ "**N**") %>%
  modify_footnote(everything() ~ NA)

# calculate the event N by gender
tbl_nevent <- df %>% filter(event == 1) %>% select(gender) %>% 
  tbl_summary(statistic = everything() ~ "{n}") %>%
  modify_header(stat_0 ~ "**Event N**")  %>%
  modify_footnote(everything() ~ NA)

# build cox models
tbl_cox <-
  tbl_uvregression(
  df, 
  method = survival::coxph, 
  y = survival::Surv(time = time, event = event),
  exponentiate = TRUE,
  hide_n = TRUE
)

# merge tbls together
tbl_merge(list(tbl_n, tbl_nevent, tbl_cox)) %>%
  modify_spanning_header(everything() ~ NA)

在此处输入图像描述

我还没有想过如何为这些表格增加跟进时间。但我会考虑最好的实现。它希望通过tbl_survfit()@Mike 提到的函数系列。

于 2020-08-19T13:45:37.130 回答