我想使用 R 函数 tableby() 将分层打印为额外的列而不是额外的行,或者找到另一种方法来完成同样的事情。我用下面的模拟研究数据展示了一个示例。然而,我的实际数据集有更多变量(分类变量和数字变量),因此不同的格式更有意义。另外,我想显示每个子类别中的观察数量(例如,治疗组 A 和男性、治疗组 A 和女性等)。
作为一个简短的示例,我在 Rmardown 文件中包含以下代码,以使用 R 中的 arsenal 包中的 tableby() 函数生成包含汇总统计信息的表。
knitr::opts_chunk$set(echo = TRUE)
library(arsenal) # for tableby()
require(knitr)
data(mockstudy) # load data
summary(tableby(sex ~ age + bmi, strata = arm, subset = arm %in% c("A: IFL", "F: FOLFOX"), data = mockstudy))
生成以下输出:
但是,我想要一个按以下方式排列的表格,每列的顶部都有正确的 N:
有没有办法使用 tableby() 或另一个 R 包中的另一个函数来做到这一点?
使用arsenal和tableby(),我相信你的strata参数(
strata=arm
)是最好的方法。
相反,我建议在 gtsummary 包中查看类似 tblstrata() 的内容;它会给你看起来像这样的东西:。
使用您给出的相同示例,代码将是:
table_example <-
mockstudy %>%
tbl_strata(
strata = arm,
.tbl_fun =
~ .x %>%
tbl_summary(by = sex, missing = "no") %>%
add_n(),
.header = "**{strata}**, N = {n}"
)