Я работаю над проектом с gtsummary. Для одной из таблиц мне нужно создать длинную таблицу, в которой перечислены ковеременные до и после процесса сопоставления.

Моя проблема в том, что для всех переменных (например, Ожирение ) читается одна строка, Ожирение , а затем следующая строка, Ожирение , а затем следующее: Not Obese . Это три таблицы, для которых я хочу показать только одну: Диабет N (%) .

Я пробовал редактировать дихотомические переменные, вводя Null, пытаясь найти функцию row_hide, но безуспешно.

Вот мой код:

Создание суда

trialCAS1 <- index_CAS %>%
select(TopDecile, Gender, Obesity, Diabetes, Diabetes_Complex, etc)

Табл. Сводка

CAStable1 <- tbl_summary(trialCAS1, 
by = TopDecile,
missing = "no") %>%
add_n() %>%
modify_header(label = "**Variable**") %>%
bold_labels()

Я включил первую попавшуюся таблицу.

image

4
neuroR 18 Июн 2020 в 21:07

1 ответ

Лучший ответ

Функция tbl_summary() изо всех сил пытается угадать тип передаваемых данных (категориальный, дихотомический и непрерывный). Он не всегда угадывает, что мы хотели бы видеть, но значение по умолчанию всегда можно изменить с помощью аргументов в tbl_summary()! В качестве примера я буду использовать набор данных trial в пакете {gtsummary}.

Вот результат по умолчанию:

library(gtsummary)
trial %>%
  select(trt, grade, stage) %>%
  tbl_summary(by = trt)

enter image description here

По умолчанию сводная статистика для оценки и этапа отображается в нескольких строках. Однако представьте, что нас интересует только частота заболевания I степени и частота рака T1. Мы можем использовать аргумент tbl_summary(value=), чтобы указать, что это единственные значения, которые мы хотим отображать (которые затем по умолчанию будут печатать их как дихотомические переменные). В приведенном ниже примере я также обновил отображаемую метку, чтобы указать, что это только уровни Grade I и Stage T1.

trial %>%
  select(trt, grade, stage) %>% 
  tbl_summary(
    by = trt,
    value = list(grade ~ "I",
                 stage ~ "T1"),
    label = list(grade ~ "Grade I",
                 stage ~ "Stage T1")
  ) 

enter image description here

Основываясь на том, что я вижу из вашего кода и результатов, я думаю, что этот код будет работать для вас с вашим набором данных:

tbl_summary(
  trialCAS1, 
  by = TopDecile,
  missing = "no".
  value = Obesity ~ "Obese",
  label = Obesity ~ "Obese"
) 
1
Daniel D. Sjoberg 18 Июн 2020 в 18:26