是否可以提取 gtsummary 中执行的统计测试的完整输出?
Is it possible to extract the full output for the statistical tests performed in gtsummary?
Background/aim
我正在使用 gtsummary 来呈现 tables,其中还包括软件包执行的统计测试。我想在 table 中补充有关手稿文本中统计检验的其他信息。例如,gtsummary 已经用 anova 测试了组间的均值差异,我想在文本中报告测试的 F 值和值的度数。有什么方法可以从 gtsummary 对象中提取此信息,还是我必须单独再次 运行 统计测试并从那里提取它?即,运行 aov() 并从输出复制粘贴?
使用方差分析作为统计检验的示例情况
library(tidyverse)
library(gtsummary)
theme_gtsummary_mean_sd()
gtTable <- mtcars %>%
select(cyl, mpg) %>%
tbl_summary(by = cyl) %>%
add_p()
oneWay <- aov(mpg ~ cyl, data = mtcars)
summary(oneWay)
#> Df Sum Sq Mean Sq F value Pr(>F)
#> cyl 1 817.7 817.7 79.56 6.11e-10 ***
#> Residuals 30 308.3 10.3
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Table
这 应该 是可能的,但不幸的是,目前 aov()
结果不可能。我会在下一个版本中实现,你可以关注这个 GitHub Issue 来跟踪发布的进度。 https://github.com/ddsjoberg/gtsummary/issues/956
这是一个使用 t 检验的示例,目前可以使用。
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.4.2'
tbl <-
trial %>%
select(age, trt) %>%
tbl_summary(by = trt,
missing = "no") %>%
add_p(all_continuous() ~ "t.test")
# report any statistics in `tbl$table_body` with `inline_text()`
tbl$table_body
#> # A tibble: 1 x 18
#> variable test_name var_type var_label row_type label stat_1 stat_2 test_result
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <list>
#> 1 age t.test continuous Age label Age 46 (3~ 48 (3~ <named lis~
#> # ... with 9 more variables: estimate <dbl>, statistic <dbl>, parameter <dbl>,
#> # conf.low <dbl>, conf.high <dbl>, p.value <dbl>, estimate1 <dbl>,
#> # estimate2 <dbl>, alternative <chr>
# the columns about the t-test come from `t.test(...) %>% broom::tidy()`
t.test(age ~ trt, data = trial) %>% broom::tidy()
#> # A tibble: 1 x 10
#> estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 -0.438 47.0 47.4 -0.209 0.834 184. -4.57 3.69
#> # ... with 2 more variables: method <chr>, alternative <chr>
# t-statistic
inline_text(tbl, variable = "age", column = "statistic") %>% style_sigfig()
#> t
#> "-0.21"
# degrees of freedom
inline_text(tbl, variable = "age", column = "parameter") %>% style_number()
#> df
#> "184"
由 reprex package (v2.0.1)
于 2021-08-10 创建
Background/aim
我正在使用 gtsummary 来呈现 tables,其中还包括软件包执行的统计测试。我想在 table 中补充有关手稿文本中统计检验的其他信息。例如,gtsummary 已经用 anova 测试了组间的均值差异,我想在文本中报告测试的 F 值和值的度数。有什么方法可以从 gtsummary 对象中提取此信息,还是我必须单独再次 运行 统计测试并从那里提取它?即,运行 aov() 并从输出复制粘贴?
使用方差分析作为统计检验的示例情况
library(tidyverse)
library(gtsummary)
theme_gtsummary_mean_sd()
gtTable <- mtcars %>%
select(cyl, mpg) %>%
tbl_summary(by = cyl) %>%
add_p()
oneWay <- aov(mpg ~ cyl, data = mtcars)
summary(oneWay)
#> Df Sum Sq Mean Sq F value Pr(>F)
#> cyl 1 817.7 817.7 79.56 6.11e-10 ***
#> Residuals 30 308.3 10.3
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Table
这 应该 是可能的,但不幸的是,目前 aov()
结果不可能。我会在下一个版本中实现,你可以关注这个 GitHub Issue 来跟踪发布的进度。 https://github.com/ddsjoberg/gtsummary/issues/956
这是一个使用 t 检验的示例,目前可以使用。
library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.4.2'
tbl <-
trial %>%
select(age, trt) %>%
tbl_summary(by = trt,
missing = "no") %>%
add_p(all_continuous() ~ "t.test")
# report any statistics in `tbl$table_body` with `inline_text()`
tbl$table_body
#> # A tibble: 1 x 18
#> variable test_name var_type var_label row_type label stat_1 stat_2 test_result
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <list>
#> 1 age t.test continuous Age label Age 46 (3~ 48 (3~ <named lis~
#> # ... with 9 more variables: estimate <dbl>, statistic <dbl>, parameter <dbl>,
#> # conf.low <dbl>, conf.high <dbl>, p.value <dbl>, estimate1 <dbl>,
#> # estimate2 <dbl>, alternative <chr>
# the columns about the t-test come from `t.test(...) %>% broom::tidy()`
t.test(age ~ trt, data = trial) %>% broom::tidy()
#> # A tibble: 1 x 10
#> estimate estimate1 estimate2 statistic p.value parameter conf.low conf.high
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 -0.438 47.0 47.4 -0.209 0.834 184. -4.57 3.69
#> # ... with 2 more variables: method <chr>, alternative <chr>
# t-statistic
inline_text(tbl, variable = "age", column = "statistic") %>% style_sigfig()
#> t
#> "-0.21"
# degrees of freedom
inline_text(tbl, variable = "age", column = "parameter") %>% style_number()
#> df
#> "184"
由 reprex package (v2.0.1)
于 2021-08-10 创建