带有分类变量总计的GTR汇总行
我有一个大约700000名患者的数据集,其中我有医院站点ID(因子变量)。我想创建一行,其中医院的数量是可见的(这与患者的数量是分开的)。除了一个整体列之外,我还有3个分类变量作为我的列 目前,每个医院id都有一个单独的行,其中包含每个类别的每个站点的患者数量 我的代码如下:带有分类变量总计的GTR汇总行,r,summary,gtsummary,tbl,R,Summary,Gtsummary,Tbl,我有一个大约700000名患者的数据集,其中我有医院站点ID(因子变量)。我想创建一行,其中医院的数量是可见的(这与患者的数量是分开的)。除了一个整体列之外,我还有3个分类变量作为我的列 目前,每个医院id都有一个单独的行,其中包含每个类别的每个站点的患者数量 我的代码如下: t1 <- PIR %>% select(siteidn, countryname) %>% tbl_summary(by = countryname ,missing = "n
t1 <- PIR %>%
select(siteidn, countryname) %>%
tbl_summary(by = countryname ,missing = "no",
label = list(
siteidn = "Number of ICUs"),
statistic = list(
all_continuous() ~ "{mean} ({sd})",
all_categorical() ~ "{n} ({p}%)")) %>%
bold_labels() %>%
italicize_levels() %>%
add_overall()
t2 <- PIR %>%
select(siteidn, hospt) %>%
tbl_summary(by = hospt ,missing = "no",
label = list(
siteidn = "Number of ICUs"),
statistic = list(
all_continuous() ~ "{mean} ({sd})",
all_categorical() ~ "{n} ({p}%)")) %>%
bold_labels() %>%
italicize_levels()
t3 <- PIR %>%
select(siteidn, iculevelname) %>%
tbl_summary(by = iculevelname ,missing = "no",
label = list(
siteidn = "Number of ICUs"),
statistic = list(
all_continuous() ~ "{mean} ({sd})",
all_categorical() ~ "{n} ({p}%)")) %>%
bold_labels() %>%
italicize_levels()
tbl_merge(
tbls = list(t1, t2, t3),
tab_spanner = c("**Country**", "**Hospital Type**", "**ICU Level**"))
t1%
选择(siteidn,countryname)%>%
tbl_摘要(by=countryname,missing=“no”,
标签=列表(
siteidn=“ICU数量”),
统计=列表(
all_continuous()~“{mean}({sd})”,
all_category()~“{n}({p}%)”)%%>
粗体标签()%>%
斜体字_levels()%>%
添加_整体()
t2%
选择(站点ID,hospt)%>%
tbl_摘要(by=hospt,missing=“否”,
标签=列表(
siteidn=“ICU数量”),
统计=列表(
all_continuous()~“{mean}({sd})”,
all_category()~“{n}({p}%)”)%%>
粗体标签()%>%
斜体字_levels()
t3%
选择(siteidn,IllevelName)%>%
tbl_摘要(by=iculevelname,missing=“no”,
标签=列表(
siteidn=“ICU数量”),
统计=列表(
all_continuous()~“{mean}({sd})”,
all_category()~“{n}({p}%)”)%%>
粗体标签()%>%
斜体字_levels()
待合并(
tbls=列表(t1、t2、t3),
tab_扳手=c(“**国家**”,“医院类型**”,“重症监护病房级别**”))
这将生成下表:
可以看出,每个医院ID都有一个单独的行。我希望有一个单独的行,其中有每层医院的总数(即澳大利亚、新西兰、大都会等的医院总数)
我的问题是:
我同意Ben的观点,最好包含一个我们可以在机器上运行的数据集,以及一个您希望输出的示例。下面是一个解决大多数问题的代码示例
modify\u span\u header()
函数删除整个列上方的标题
tbl\u cross()
函数。它会自动添加总行数
库(gtsummary)
图书馆(tidyverse)
种子集(20210108)
#创建虚拟数据集
PIR%系数(),
countryname=样本(c(“新西兰”、“澳大利亚”),100,替换为真)%>%因子(),
hospt=样本(c(“地铁”、“农村”),100,替换为真)%>%因子(),
病人=真的
) %>%
分组人(站点ID)%>%
变异(
count_site=行数()=1L#每个站点一个TRUE
) %>%
解组()%>%
标签::设置变量标签(siteidn=“ICU数量”,#分配标签
病人=“N”)
t1%
选择(患者、站点ID、国家名称)%>%
tbl_摘要(
by=countryname,
missing=“否”,
statistic=patient~“{n}”#仅打印顶行的n
) %>%
修改_头(stat_by=“**{level}**”)%%>%#从头行中删除Ns
添加整体(列标签=“**整体**”)
t2%
选择(患者、站点ID、医院)%>%
tbl_摘要(
by=hospt,
missing=“否”,
statistic=patient~“{n}”#仅打印顶行的n
) %>%
修改标题(stat_by=“**{level}**”)#从标题行中删除Ns
待定%
粗体标签()%>%
斜体字_levels()%>%
#删除整个列的扩展标题,使用“显示标题名称(tbl)”打印列名
修改标题(stat\u0\u1~NA)%>%
修改脚注(everything()~NA)#删除脚注,因为它在此设置中不提供信息
编辑:在对原始海报进行澄清后,添加另一个如何展示Ns的示例
下表显示了两种显示患者Ns和站点数量的方法。第一行是两行两个变量,最后一行是在一行上显示信息的方式
t1%
选择(患者,仅站点=计数站点,组合=计数站点,国家名称)%>%
tbl_摘要(
by=countryname,
missing=“否”,
统计=列表(c(仅限患者、站点)~“{n}”,
组合~“站点N{N};总N{N}”)
)
我同意本的观点,永远是g