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()
谢谢!
- 相关 - 是否有
gtsummary
解决方案?例如 style_scinot
?
嗯,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 创建
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()
谢谢!
- 相关 - 是否有
gtsummary
解决方案?例如style_scinot
?
嗯,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()