在 gtsummary 中创建一个带有标题的新列

问题描述 投票:0回答:1

我有一个关于 R 中的 gtsummary 的问题。在所附的示例中,假设我想在特征列左侧的新列上移动标题“等级”(因此左侧将有一个带有等级的新列标题,然后右侧的列(特征)将具有相同的小节 I、II 和 III)。唯一的区别是主标题与小节标题分开。有没有办法在 R 中做到这一点? Output Example 取自:https://www.danieldsjoberg.com/gtsummary/index.html 当我试图在我的项目中实现类似的东西时遇到了一些困难。谢谢!

编辑:更具体地说,我的数据涉及人口统计变量,我想要这样的输出(见附件)。如此处所示,种族与其小节分开。

example of output

r variables gtsummary
1个回答
0
投票

这就是我的做法!

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

tbl <-
  trial |> 
  tbl_summary(
    include = c(age, grade),
    missing = "no"
  ) |> 
  # adding a new column called label2
  modify_table_body(
    ~ .x |> 
      dplyr::group_by(variable) |> 
      dplyr::filter(!(row_type %in% "label" & var_type %in% "categorical")) |>  # remove the header row for categorical variables
      dplyr::mutate(
        label2 = 
          dplyr::case_when(
            dplyr::row_number() == 1L ~ var_label
          ),
        label = 
          dplyr::case_when(
            variable == "age" ~ "Per year",
            TRUE ~ label
          ),
        .before = label
      ) |> 
      dplyr::ungroup()
  ) |> 
  # adding a header to the new column and setting its alignment
  modify_header(label2 = "**Variable**", label = "**Units/Level**") |> 
  modify_column_alignment(label2, "left") |> 
  # removing default indetations for categorical variables
  modify_column_indent(columns = label, undo = TRUE)

tbl |> as_kable() # convert to kable so table will display on SO
可变 单位/级别 N = 200
年龄 每年 47 (38, 57)
年级 68 (34%)
68 (34%)
64 (32%)

创建于 2023-03-26 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.