如何将 R 中的 tableone 包中的计数和百分比提取到单独的变量中?

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

我在 R 中使用 tableone 包创建了很多大型表。我只是被要求提供 Excel 格式的表格以及单独列中的计数和百分比(或平均值/标准差等)。有没有一种简单的方法可以从 tableone 对象中提取这些信息?将 tableone 输出保存为数据框,我可以使用 dplyr 进行操作。

现有表格格式的示例代码:

library(dplyr)
library(tableone)
library(htmlTable)
starwars_data <- starwars %>%
mutate(species_cat = ifelse(species == 'Human', 'Human', 'Nonhuman'))
starwars_tbl <- CreateTableOne(vars = c('height', 'mass', 'hair_color', 'eye_color'), strata = 'species_cat', data = starwars_data)
starwars_tbl_print <- print(starwars_tbl, showAllLevels = TRUE, smd = TRUE, printToggle = FALSE)
htmlTable(starwars_tbl_print[, c(1:3,6)])

所需的输出是一个结构如下图所示的数据框。必须截屏,因为它一直将我的表格标记为格式不正确的代码,有人知道为什么吗?

所需输出

r dataframe extract
1个回答
0
投票

按层划分的原始数据矩阵可在

trialone
对象中找到。例如,
starwars_tbl$ContTable$Human

要将

starwars_tbl$ContTable
中的所有数据放入数据框中,我们可以:

starwars_tbl$ContTable %>%
    map(\(x) as_tibble(x, rownames = "var")) %>%
    bind_rows(.id = "strata")

CatTable
中的原始数据位于每个层的矩阵列表中。要将其放入数据框中,我们可以:

starwars_tbl$CatTable %>%
    map(\(x) bind_rows(x, .id = "var")) %>%
    bind_rows(.id = "strata")

P 值和标准化平均差 (SMD) 可以在连续表和分类表的属性中找到。例如,

attributes(starwars_tbl$ContTable)$pValues
attributes(starwars_tbl$ContTable)$smd

© www.soinside.com 2019 - 2024. All rights reserved.