2

当我为 add_p() 创建一个“自定义 pvalue 函数”时,我尝试调整 p 值的数字,但发现函数“round”不起作用。(参见代码“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))

在此处输入图像描述

4

1 回答 1

1

首先,我能不能夸奖一下你制作的桌子:我印象非常深刻!

要更改表中 p 值的格式,请使用add_p(pvalue_fmt=)参数传递函数。该函数应采用数字向量,并返回格式化/舍入的字符向量。

要修改格式百分比,请使用tbl_summary(digits=)参数。

下面的例子!

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

tbl <-
  trial %>%
  dplyr::select(trt, age, grade) %>%
  tbl_summary(
    by = trt,
    # show percentages to 1 decimal place
    digits = all_categorical() ~ c(0, 1)
  ) %>%
  # rounding p-values to 3 decimal places
  add_p(pvalue_fun = function(x) style_number(x, digits = 3))

在此处输入图像描述 reprex 包于 2021-07-23 创建 (v2.0.0 )

于 2020-05-06T17:03:20.150 回答