tbl_summary()和add_p()--将测试的名称(如脚注中所示)拉入一列

ws51t4hk  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(139)

我希望能够将用于p值计算的测试类型的读者友好名称拉到其自己的列中。从理论上讲,我认为应该可以使用脚注中使用的相同对象(但如何使用一直很困难)。
样本数据:

library(gtsummary)
df <- data.frame(rnorm(10),rnorm(10), sample(c("orange","pink","green"), size = 10, replace = TRUE),sample(c(TRUE, FALSE), size = 10, replace = TRUE))

names(df) <- c("a","b","c","outcome")
preds <- c("a","b","c")

gt <- df %>% select(all_of(preds), outcome) %>%
  tbl_summary(by = outcome, percent = 'row') %>%
add_p()

如果我做

gt %>% modify_header(statistic ~ "**Test Statistic**", 
  test_name ~ "**Test Used**")

我得到了统计值(太棒了!)和所用的测试,但所用的测试是以函数名的形式格式化的。
我希望它对读者更友好。例如,我希望它像脚注那样打印“Fisher精确检验”,而不是“Fisher.test”。这能做到吗?

kuuvgm7e

kuuvgm7e1#

下面的代码演示了如何从gtsummary表的内部访问测试名称。也就是说,不能保证在将来的某个时候内部不会发生变化,这些变化不会被认为是破坏性的变化,因为它们不是gtsummary包中出现的功能。

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

tbl <- 
  trial |> 
  tbl_summary(
    by = trt, 
    include = age, 
    missing = "no"
  ) |> 
  add_p()

# access the names from the gtsummary internals
tbl$meta_data$test_result[[1]]$df_result
#> # A tibble: 1 × 4
#>   statistic p.value method                 alternative
#>       <dbl>   <dbl> <chr>                  <chr>      
#> 1      4323   0.718 Wilcoxon rank sum test two.sided

创建于2023-10-05使用reprex v2.0.2

相关问题