r - 在 tbl_summary 中添加具有按行平均值(数值变量)的列

标签 r gtsummary

我对 R 很陌生,非常感谢您在以下方面的帮助。我正在使用 tbl_summary 函数使用 gtsummary 包制作一个表:

install.packages("gtsummary")
library(gtsummary)
library(dplyr)

data(mtcars)
df <- mtcars %>% select(cyl, hp)
tbl_summary(df)

结果表显示气缸组(4、6、8)的 n(%) 以及马力的中值 (IQR)。我还没有足够的声誉点来嵌入图像,但这里是查看该表的链接:[1]:https://i.sstatic.net/Whvz6.png

我的问题是:如何添加一个附加列,其中包含按行组(即气缸子级别)的平均马力,而不是将总马力包含为一行?我尝试将可自定义的 add_stat 参数添加到 tbl_summary 但未能获得所需的结果。

如果我需要澄清我的问题,请告诉我。预先感谢您的帮助。

最佳答案

有几种方法可以解决这个问题。一种方法是使用 add_stat()

library(gtsummary)

fn_add_mean <- function(data, variable, ...) {
  data %>%
    dplyr::group_by(.data[[variable]]) %>%
    dplyr::arrange(.data[[variable]]) %>%
    dplyr::summarise(hp = mean(hp, na.rm = TRUE)) %>%
    select(hp) %>%
    mutate(hp = style_sigfig(hp))
}
fn_add_mean(mtcars, "cyl")
#> # A tibble: 3 x 1
#>   hp   
#>   <chr>
#> 1 83   
#> 2 122  
#> 3 209

tbl <-
  mtcars %>%
  select(hp, cyl, gear) %>%
  tbl_summary(
    include  = -hp,
    type = everything() ~ "categorical"
  ) %>%
  add_stat(
    all_categorical() ~ fn_add_mean,
    location = all_categorical() ~  "level"
  ) %>%
  modify_header(hp ~ "**Mean Horsepower**")

enter image description here reprex package 创建于 2021-07-31 (v2.0.0)

关于r - 在 tbl_summary 中添加具有按行平均值(数值变量)的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68592878/

相关文章:

r - 定期为 R Shiny 输出捕获 cat 输出(renderPrint)

r - r中霍尔分区的快速排序

r - 如果一列的值出现在另一列中,则对行进行分组

r - gtsummary::tbl_summary 和唯一变量值

用于生成数字所有可能因式分解的 R 算法

r - 使用 R 中的 xlsx 包更新 Excel 电子表格数据

r - 使用gtummary通过一行代码功能创建多个交叉表

R, tbl_summary, 正确处理连续变量

r - gtsummary 中的 Wald 置信区间

r - gtsummary 回归表的生成 header