【问题标题】:Split long gtsummary() table to n smaller tables将长 gtsummary() 表拆分为 n 个较小的表
【发布时间】:2021-05-13 03:26:33
【问题描述】:

在使用 gtsummary() 包创建描述性表格时,我得到了一张很长的表格。 是否可以将这样的表拆分为多个较短的表?

通过这个示例数据集,我想说明我的意思:

library(gtsummary)
# make dataset with a few variables to summarize
trial2 <- trial %>% select(age, grade, response, trt)

# summarize the data with our package
table1 <- tbl_summary(trial2)
table1

给出这个输出:

想要的输出:

我试过了:

library(gtsummary)
# make dataset with a few variables to summarize
trial2 <- trial %>% select(age)
trial3 <- trial %>% select(grade)
trial4 <- trial %>% select(response)
trial5 <- trial %>% select(trt)

# summarize the data with our package
table1 <- tbl_summary(trial2)
table2 <- tbl_summary(trial3)
table3 <- tbl_summary(trial4)
table4 <- tbl_summary(trial5)

table1
table2
table3
table4

【问题讨论】:

  • 你想把它保留为一张桌子,然后让那张桌子以一定的长度换行吗?
  • 问题是我的原始表格持续超过 3 页。我的想法是将桌子分成两部分并并排展示。我想知道这是否可以按代码进行。
  • 我还会检查输出类型,即 gt、flextable、huxtable 等是否有任何内置方法来跨页拆分表格。虽然,这些解决方案不会尊重变量分组。

标签: r split gtsummary


【解决方案1】:

更新:此代码已被功能化并放入一个包中。这是帮助文件http://www.danieldsjoberg.com/bstfun/reference/tbl_split.html

有趣的是,我从没想过拆分 gtsummary 表。这样做很简单,我已经编写了一个小函数来保存在这个 GitHub Gist 中 https://gist.github.com/ddsjoberg/1f400732f0bf9bc9ae6ad1dd8b1cf914

该函数将 gtsummary tbl 以及您希望进行拆分的变量名称作为输入。然后它返回一个 gtsummary 表列表,每个表都是输入 tbl 的子集。

tt <- 
  trial %>%
  tbl_summary(by = trt) %>%
  add_p()

split_gtsummary_tbl(tt, .split_after = c("marker", "grade"))

如果您认为这会对许多用户有所帮助,请通过https://github.com/ddsjoberg/gtsummary/issues/new?assignees=&labels=&template=feature_request.md&title= 提出功能请求。然后我们可以合并一个健壮的函数来拆分 tbls。

【讨论】:

  • 这是完美的 Daniel D. Sjoberg。事实上,在某些情况下,尤其是在数据分析开始时,带有所有变量的汇总表是一个重要特征。我喜欢 gtsummary 表的设计和功能,所以我要求提供此功能。还有一个问题:这可能是题外话,但您是否会在您的表格代码中提供一个保存选项(如 table1.png、table2.png 等...)。感谢您的出色工作。
  • 这是一个如何将 gtsummary 保存为 png 的示例。 danieldsjoberg.com/gtsummary/articles/rmarkdown.html#images-1 此方法也适用于保存为 RTF、HTML 等格式。
  • 使用我的数据框时出现此错误:Fehler: Can't coerce element 1 from a double to a integer。你能帮我吗?我可以回溯或调试。但是我觉得评论区不适合这个。
  • 创建一个reprex,我可以看看
  • 感谢您的回复:我在这里开始了一个新问题:stackoverflow.com/questions/66135460/…>
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
相关资源
最近更新 更多