【问题标题】:three-way contigency table gtsummary三向列联表 gtsummary
【发布时间】:2021-07-12 16:14:59
【问题描述】:
library(gtsummary)
one <- mtcars %>% filter(am==0) %>% select(cyl,disp,hp,wt,vs) %>% 
  tbl_summary(by=cyl) %>% add_p
two <- mtcars %>% filter(am==1)%>% select(cyl,disp,hp,wt,vs) %>% 
  tbl_summary(by=cyl) %>% add_p
three <- mtcars %>% select(disp,hp,wt,vs,am) %>% 
  tbl_summary(by=am) %>% add_p
tbl_merge(list(one,two,three))

是否有一种简单的方法可以删除表 3 下的所有列,只保留 p 值列作为表 1 和表 2 之间差异的测试?还是有另一种在 gtsummary 中做 3 路列联表的方法?

【问题讨论】:

    标签: r gtsummary


    【解决方案1】:

    您需要使用tbl_strata() 函数。 http://www.danieldsjoberg.com/gtsummary/reference/tbl_strata.html

    library(gtsummary)
    
    trial %>%
      select(age, grade, stage, trt) %>%
      mutate(grade = paste("Grade", grade)) %>%
      tbl_strata(
        strata = grade,
        .tbl_fun =
          ~ .x %>%
          tbl_cross(stage, trt, margin = NULL) 
      )
    

    【讨论】:

    • 谢谢-但不是我的想法,因为我想在每个层内都有 p 值,而且在层之间也有。请参阅我的示例的输出 - 但我更愿意只保留比较其他两个层的列中的 p 值列。
    • 对不起,我看错了你的例子!您可以将tbl_cross() 切换为tbl_summary() 并在tbl_summary() 之后添加add_p()。这可以通过"am" 为您提供分层表格。您仍然需要合并最后一个整体表:没有一个函数可以一次处理所有这些。
    猜你喜欢
    • 2021-01-28
    • 2021-02-08
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2018-02-12
    相关资源
    最近更新 更多