带有分类变量总计的GTR汇总行

带有分类变量总计的GTR汇总行,r,summary,gtsummary,tbl,R,Summary,Gtsummary,Tbl,我有一个大约700000名患者的数据集,其中我有医院站点ID(因子变量)。我想创建一行,其中医院的数量是可见的(这与患者的数量是分开的)。除了一个整体列之外,我还有3个分类变量作为我的列 目前,每个医院id都有一个单独的行,其中包含每个类别的每个站点的患者数量 我的代码如下: t1 <- PIR %>% select(siteidn, countryname) %>% tbl_summary(by = countryname ,missing = "n

我有一个大约700000名患者的数据集,其中我有医院站点ID(因子变量)。我想创建一行,其中医院的数量是可见的(这与患者的数量是分开的)。除了一个整体列之外,我还有3个分类变量作为我的列

目前,每个医院id都有一个单独的行,其中包含每个类别的每个站点的患者数量

我的代码如下:

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都有一个单独的行。我希望有一个单独的行,其中有每层医院的总数(即澳大利亚、新西兰、大都会等的医院总数)

我的问题是:

  • 是否有方法获取非患者编号的因子变量的总行
  • 是否可以在合并表格后插入一个总列(这样总列就不会在国家标题下)
  • 是否有办法为患者数量创建一行,而不在标题中包含这些详细信息
  • 谢谢大家抽出时间

    ADDIT:这是我想要的桌子的图片。我为它的粗鲁道歉。我希望ICU总数的因子变量只有一行,而不是每个ICU都有一行患者数量(红色墨水)

    此外,是否有一种方法可以将这两行分组到一个公共标题下,类似于因子变量(绿色墨水)

    我很欣赏我的R技能是粗鲁的。谢谢大家的耐心


    我同意Ben的观点,最好包含一个我们可以在机器上运行的数据集,以及一个您希望输出的示例。下面是一个解决大多数问题的代码示例

  • 是否有方法获取非患者编号的因子变量的总行
  • 我不知道你在这里找什么。请提供更多细节

  • 是否可以在合并表格后插入一个总列(这样总列就不会在国家标题下)
  • 是的,您可以使用
    modify\u span\u header()
    函数删除整个列上方的标题

  • 是否有办法为患者数量创建一行,而不在标题中包含这些详细信息
  • 是的,如果您在数据集中创建了一个新列,该列适用于所有观察结果,我们可以汇总该列并报告N

    此外,如果只对单个变量进行交叉制表,则应查看
    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