gtsummary:在Markdown PDF输出中容纳宽表

时间:2020-04-13 14:28:37

标签: r pdf r-markdown gtsummary

我正在尝试创建一个有效的患者特征表(表1),但是由于我的“ by”变量具有10个类别,因此它会溢出PDF页面。

我试图截断类别名称,并将页面布局更改为横向,但是页面上仍然没有1个类别。

您能告诉我如何解决此问题吗?

有没有一种方法可以打印默认情况下出现在列标题上的N和N(%),使其显示在列名称的正下方,而不是出现在同一行上,从而减少宽度?例如您的示例中的内容是:

药物A,N = 98(49%)1药物B,N = 102(51%)1

成为:

药物A _ _ _ _ _ _ _ _药物B

N = 98(49%)1 _ _ _ _ N = 102(51%)1

谢谢

1 个答案:

答案 0 :(得分:1)

首先,让我们解决列宽的问题。我们目前正在准备gtsummary的新版本,下周将发布给CRAN。在新版本中,有一个名为as_kable_extra()的函数,它将gtsummary对象转换为kable并使用kableExtra添加其他格式。您可以使用此功能将您的gtummary对象转换为与kableExtra一起使用,然后减小字体大小以使表格合适。使用remotes::install_github("ddsjoberg/gtsummary")

从GitHub安装gtsummary的开发版本。

这是一个代码示例:

library(gtsummary)

# build a tbl_summary object
trial %>%
  select(trt, age, grade, response) %>%
  tbl_summary(by = trt, missing = "no") %>%
  # style the output with custom header
  modify_header(stat_by = "{level}") %>%
  # convert to kableExtra
  as_kable_extra(booktabs = TRUE) %>%
  # reduce font size to make table fit. 
  # you may also use the `latex_options = "scale_down"` argument here.
  kableExtra::kable_styling(font_size = 7)

使用as_flextable()函数,然后使用可伸缩包提供的格式化功能,可以获得类似的结果。

关于标题中的换行符...目前无法实现。但是,在as_kable_extra()函数(http://haozhu233.github.io/kableExtra/best_practice_for_newline_in_latex_table.pdf)中实现看起来很简单。如果有时间,我将在下周发布之前添加此功能。

快乐编码!