【发布时间】:2021-06-03 14:47:40
【问题描述】:
我在通过 gtsummary::tbl_svysummary 创建具有子级别(两个分层;嵌套)的汇总表时遇到问题。
我已经使用以下变量创建了对象调查::svydesign:性别、国家、结果、n(加权)。我设法创建了一个表,但是我无法按性别创建一个额外的层。我已经把我想要的表格结构放在下面了。
我什至可以生成单独的表格(通过过滤器嵌套每个国家/地区)并将它们堆叠起来。但是,有21个国家,我想要一个更合理的策略。
请给点建议...
代码
# dataframe
df <-
data.frame(
Country = c("Country 1", "Country 2", "Country 3",
"Country 1", "Country 2", "Country 3",
"Country 1", "Country 2", "Country 3",
"Country 1", "Country 2", "Country 3"),
Result = c("A", "B", "C",
"B", "C", "A",
"C", "A", "B",
"A", "B", "C"),
Gender = c("M", "M", "M",
"W", "W", "W",
"M", "M", "M",
"W", "W", "W"),
n = c(583, 607, 1217,
487, 1100, 820,
178, 304, 367,
223,444,112))
df
# Create a weighted survey design object
df_survey <- survey::svydesign(~1,
data = df,
weights = ~n)
# Table
Table <- df_survey %>%
tbl_svysummary(by = Result,
percent = "row") %>%
add_overall(last = TRUE,
col_label = "**n(row)**") %>%
modify_header(label = "",
stat_by = "**{level}**") %>%
bold_labels() %>%
italicize_levels() %>%
italicize_labels()
Table
【问题讨论】:
-
您能添加一些您尝试过的数据和代码吗?
-
您好,请重新阅读帖子。我已经粘贴了代码。
标签: r pivot-table crosstab gtsummary