Почему функция "округление" не работает с цифрами p-значения? и как отрегулировать цифры процентов в сводных таблицах с помощью gtsummary?
Когда я создавал "настраиваемую функцию pvalue для add_p()", я пытался настроить цифры p-значения, но обнаружил, что функция "круглой" дозы не работает. (см. код "result $ p <- round (result $p, 3)")
Кроме того, я обнаружил, что не могу изменить цифры в процентах от числа подсчетов в сводной таблице.
ttest1 <- function(data, variable, by, ...) {
result <- list()
result$p <- stats::t.test(data[[variable]] ~ data[[by]])$statistic
result$p <- round(result$p, 3)
result$test <- "t test"
result
}
ttest2 <- function(data, variable, by, ...) {
result <- list()
result$p <- stats::t.test(data[[variable]] ~ data[[by]])$p.value
result$p <- round(result$p, 3)
result$test <- "t test"
result
}
add_p_ex1 <-trial[c("age","grade", "response", "trt")] %>%
tbl_summary(by = trt,
statistic = list(all_continuous() ~ "{mean} ± {sd}",
all_categorical() ~ "{n} ({p})"),
digits = list(all_continuous() ~ c(2, 2))) %>%
add_p(test = list(all_continuous() ~ "ttest1", all_categorical() ~ "chisq1")) %>%
modify_header(p.value = md("**t/X2**"))
add_p_ex2 <-
tbl_summary(by = trt,
statistic = list(all_continuous() ~ "{mean} ± {sd}",
all_categorical() ~ "{n} ({p})"),
digits = list(all_continuous() ~ c(2, 2))) %>%
add_p(test = list(all_continuous() ~ "ttest1", all_categorical() ~ "chisq2"))
tbl_merge(list(add_p_ex1, add_p_ex2)) %>%
as_gt(include = -tab_spanner) %>%
cols_hide(columns = vars(stat_1_2, stat_2_2))
1 ответ
Во-первых, могу я похвалить вас за стол, который вы построили: я очень впечатлен!
Чтобы изменить форматирование p-значения в таблице, используйте add_p(pvalue_fmt=)
аргумент для передачи функции. Функция должна принимать числовой вектор и возвращать отформатированный / округленный вектор символов.
Мы все еще работаем над тем, чтобы пользователи могли изменить форматирование процентов по умолчанию в tbl_summary()
выход. В разрабатываемой версии gtsummary мы ввели темы, которые позволяют вам указывать предпочтения для отображения вывода. Я привел пример ниже, а вот ссылка на виньетку, если вы хотите узнать больше. (К вашему сведению, вы также можете установить функции форматирования p-значения с помощью тем.)
http://www.danieldsjoberg.com/gtsummary/dev/articles/themes.html
# install dev version
remotes::install_github("ddsjoberg/gtsummary")
# load gtsummary package
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.3.0.9008'
# set theme where percentages are rounded to 1 decimal place
set_gtsummary_theme(list(
"tbl_summary-fn:percent_fun" = function(x) sprintf(x * 100, fmt='%#.1f')
))
# creating summary table
tbl <-
trial %>%
dplyr::select(trt, age, grade) %>%
tbl_summary(by = trt) %>%
# rounding p-values to 3 decimal places
add_p(pvalue_fun = function(x) sprintf(x, fmt='%#.3f'))
Создано 06.05.2020 пакетом REPEX (v0.3.0)