Gtsummary add_difference для категориального в той же таблице с add_p

#r #gtsummary

Вопрос:

Я пытаюсь создать таблицы как со значением SMD, так и со значением p в одной таблице. Первая проблема заключается в том, что add_p и add_difference не могут находиться в одном и том же коде таблицы без ошибки

 `add_difference()` cannot be run after `add_p()`, and vice versa
 

Кроме того, код SMD в его нынешнем виде не работает с категориальными переменными. См. Код

 library(gtsummary)
trial2 <- trial %>% select(trt, age, grade)


trial2 %>%
  tbl_summary(by = trt) %>%
  add_difference(list(all_continuous() ~ "cohens_d",
                 all_categorical() ~ "cohens_d")) %>% 
  add_overall() %>%
  add_n() %>%
  modify_header(label ~ "**Variable**") %>%
  modify_spanning_header(c("stat_1", "stat_2") ~ "**Treatment Received**") %>%
  modify_footnote(
    all_stat_cols() ~ "Median (IQR) or Frequency (%)"
  ) %>%
  modify_caption("**Table 1. Patient Characteristics**") %>%
  bold_labels()
 

ВОЗВРАТ

 Variable(s) 'grade' are summary type 'categorical' and not compatible with `add_difference()`.
 

может ли SMD быть рассчитан аналогично tableone пакету или с использованием пакета «stddiff», чтобы он работал с категориальными переменными?

Ответ №1:

add_difference() Функция со стандартизированными средствами по умолчанию не включает значение p. Но вы можете вычислить их с помощью add_p() отдельной таблицы и объединить с ними tbl_merge() . Пример ниже!

 library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.4.2'

tbl1 <-
  trial %>%
  select(trt, age) %>%
  tbl_summary(by = trt, missing = "no") %>%
  add_difference(list(all_continuous() ~ "cohens_d"))

tbl2 <-
  trial %>%
  select(trt, age) %>%
  tbl_summary(by = trt, missing = "no") %>%
  add_p(list(all_continuous() ~ "t.test")) %>%
  modify_column_hide(all_stat_cols())

tbl_final <-
  tbl_merge(list(tbl1, tbl2)) %>%
  modify_spanning_header(everything() ~ NA)
 

введите описание изображения здесь
Создано 2021-08-10 пакетом reprex (v2.0.1)

Что касается стандартизированных различий для категориальных данных: вы можете добавить любую статистику, которая вам нравится, используя универсальную add_stat() функцию. Категориальные стандартизированные различия недоступны в gtsummary из коробки.