如何使用 R 函数 tableby() 将分层打印为额外的列而不是额外的行,或者使用其他方法来完成同样的事情?

问题描述 投票:0回答:1

我想使用 R 函数 tableby() 将分层打印为额外的列而不是额外的行,或者找到另一种方法来完成同样的事情。我用下面的模拟研究数据展示了一个示例。然而,我的实际数据集有更多变量(分类变量和数字变量),因此不同的格式更有意义。另外,我想显示每个子类别中的观察数量(例如,治疗组 A 和男性、治疗组 A 和女性等)。

作为一个简短的示例,我在 Rmardown 文件中包含以下代码,以使用 R 中的 arsenal 包中的 tableby() 函数生成包含汇总统计信息的表。


标题:“测试 tableby() 输出” 输出:html_document 日期:“2023-11-29”

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 包中的另一个函数来做到这一点?

r statistics r-markdown
1个回答
0
投票

使用arsenal和tableby(),我相信你的strata参数(

strata=arm
)是最好的方法。

相反,我建议在 gtsummary 包中查看类似 tblstrata() 的内容;它会给你看起来像这样的东西:Example from gtsummary documentation

使用您给出的相同示例,代码将是:

table_example <- mockstudy %>% tbl_strata( strata = arm, .tbl_fun = ~ .x %>% tbl_summary(by = sex, missing = "no") %>% add_n(), .header = "**{strata}**, N = {n}" )
    
© www.soinside.com 2019 - 2024. All rights reserved.