gtsummary:输出到 word_document 时如何包装单元格输出

gtsummary: how to wrap cell output when outputting to word_document

SO 的友好人士。

问:在将 flextable 对象打印到 Word 时(通过 .Rmd,输出 = word_document),是否有某种方法可以指定文本在单元格内换行?

上下文:我经常使用令人惊奇的 gtsummary 包,输出的默认格式 = html_document 是完美的。有时,我的单元格值采用一些荒谬的单位*,并且具有值,例如 1,000,000,000。当我创建一个 tbl_summary 对象时,html 输出的中位数、Q1 和 Q1 之间存在回绕,并且 table 看起来合理,因为单元格内的回绕。但是,如果我打印到 Word,则没有这样的换行,并且 1,000,000,000(500,000,000 , 2,000,000,000)打印在单元格的一行上,最大 table 比 Word 页面的宽度宽得多。这在 Word 中很容易修复,例如,Autofit Content,但是:有没有办法确保 R 中的文本换行,以便 table 在不修改的情况下看起来很好?

我的 gtsummary 对象正在使用 flextable 打印。

library(flextable)
library(gtsummary)

large_measurement <- rnorm(nrow(trial), mean = 1*10^12, sd = 1)
trial %>%
  mutate(some_measurement = large_measurement) %>%
  tbl_summary(by = trt) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
  add_overall() 

谢谢!

嗯,flextable pkg 允许我们使用 "\n" 在单元格内放置换行符。将中位数和 IQR 放在不同的行上对您有用吗?

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

large_measurement <- rnorm(nrow(trial), mean = 1*10^2, sd = 1)
tbl <-
  trial %>%
  mutate(some_measurement = large_measurement, .before = 1) %>%
  select(1:4) %>%
  tbl_summary(
    by = trt,
    missing = "no",
    # use "\n" to place a line break in statistic 
    statistic = some_measurement ~ "{median}\n({p25}, {p75})"
  ) %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
  add_overall() %>%
  # you'll need to fix the automatic footnote to remove the line break
  modify_footnote(all_stat_cols() ~ "Median (IQR)") %>%
  as_flex_table()

reprex package (v2.0.1)

于 2021-11-19 创建