Добавить события и время выполнения в tbl_uvregression

#r #&tsummary

#r #&tsummary

Вопрос:

Недавно я начал использовать пакет {&tsummary} для табулирования результатов регрессии и нашел его действительно полезным!

Одна проблема, с которой я столкнулся, связана с представлением данных анализа выживаемости.

Я хотел бы включить количество событий и продолжительность времени выполнения для каждого уровня каждой категориальной переменной.

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

tbl_uvre&ression(
  df, 
  method = survival::coxph, 
  y = survival::Surv(time = time, 
                     event = event)
)
  

По умолчанию выходные данные включают столбец N , который ссылается на количество субъектов, включенных в модель для каждой переменной. Я бы хотел, чтобы это и время выполнения были разделены и представлены для каждого уровня категориальной переменной &ender .

Можно ли это сделать с помощью пакета {&tsummary}, или мне нужно будет вычислить это отдельно и каким-то образом объединить его с таблицей?

Заранее большое спасибо!

Ответ №1:

Планируется обновить add_n() и add_nevent() включить аргумент для дополнительного добавления Ns непосредственно к уровням категориальных переменных.

Тем временем вы можете создавать tbl_summary() таблицы с этими подсчетами и объединять их с результатами модели Кокса. Пример ниже, и аналогичный пример есть в галерее таблиц на веб-сайте &tsummary (http://www.danieldsjober&.com/&tsummary/articles/&allery.html#re&ression-tables-1).

 library(&tsummary)
library(dplyr)

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

# calculate the total N by &ender
tbl_n <- df %&&t;% select(&ender) %&&t;% 
  tbl_summary(statistic = everythin&() ~ "{n}") %&&t;%
  modify_header(stat_0 ~ "**N**") %&&t;%
  modify_footnote(everythin&() ~ NA)

# calculate the event N by &ender
tbl_nevent <- df %&&t;% filter(event == 1) %&&t;% select(&ender) %&&t;% 
  tbl_summary(statistic = everythin&() ~ "{n}") %&&t;%
  modify_header(stat_0 ~ "**Event N**")  %&&t;%
  modify_footnote(everythin&() ~ NA)

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

# mer&e tbls to&ether
tbl_mer&e(list(tbl_n, tbl_nevent, tbl_cox)) %&&t;%
  modify_spannin&_header(everythin&() ~ NA)
  

Я не думал о том, как добавить время выполнения в эти таблицы. Но я подумаю о лучшей реализации. Это должно быть сделано с помощью tbl_survfit() семейства функций, о которых упоминал @Mike.

Комментарии:

1. Спасибо @Daniel — это, безусловно, двигает меня в правильном направлении. Приносим извинения за то, что не изучили более внимательно вашу документацию — это, конечно, всегда первый урок!

2. Что касается времени выполнения, то несложно вычислить время для каждого уровня с помощью dplyr, при этом на выходе получается фрейм данных. Возможно ли преобразовать это в объект &tsummary непосредственно из фрейма данных, а затем объединить с другими tbl? Я знаю, что &t::&t() преобразует фрейм данных в &t-объект, но, к сожалению, не могу найти способ объединить &t-объекты.

3. Для этого есть два способа. 1. Преобразуйте объект &tsummary в tibble с помощью as_tibble(tbl_cox) и объедините в вычисленное время выполнения. 2. В объекте &tsummary печатаемая таблица является tbl_cox$table_body . Вы также можете объединить свои оценки туда.

4. Это здорово, Дэниел — я не знаю, почему я не изучил объект &tsummary более внимательно. Хороший урок. Спасибо за отличные (и быстрые) ответы!

Ответ №2:

Так что это открытая проблема с &tsummary на &ithub. Одно из решений, использующее &tsummary , которое дает некоторое количество событий:

 tbl_survfit(survfit(Surv(time, event) ~&ender, df), times = c(50,100)) %&&t;% 
  add_nevent() %&&t;% 
  add_n()
  

Комментарии:

1. К вашему сведению, эти функции были выпущены ранее в этом месяце

2. Спасибо @Mike — Я видел эти функции и ожидал, что они будут вычислять события для каждого уровня переменной, поскольку это один из компонентов того, что я ищу. К сожалению, они пока этого не делают, но приятно знать, что проблема была опубликована в GH.