Пакет R gtsummary: как управлять / скрывать строки в сводной таблице - PullRequest
2 голосов
/ 18 июня 2020

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

Моя проблема в том, что для всех ковеременных (например, ожирения ), он читает одну строку: Ожирение , затем следующую строку: Ожирение , а затем следующую: Не ожирение . Это три таблицы, для которых я sh покажу только одну: Диабет 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()

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

образ

1 Ответ

1 голос
/ 18 июня 2020

Функция 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"
) 
...