【问题标题】:Table including between-group p value comparison for 3+ groups using ANOVA表格包括使用 ANOVA 对 3+ 组进行组间 p 值比较
【发布时间】:2021-11-04 17:44:18
【问题描述】:

首先 - 爱 gtsummary!它彻底改变了我对所有论文进行统计的方式,让我完全投入到 R 中。

想知道是否可以通过gtsummary 使用 ANOVA 进行组间比较?

这是一个例子: enter image description here

我们这里有 3 个组和 5 个功能。我可以使用 tbl_summary 和 add_p 生成这个表。这给了我每个特征的组差异的总体 p 值,但是我需要手动输入并添加那些表示组间差异显着的符号(*、† 和 ‡)(第 1 组与第 2 组;第 1 组与第 3 组等。 ..)。

为此我必须使用 SPSS,为此我使用以下 SPSS 代码进行方差分析和事后 Bonferroni 校正。

ONEWAY A B C D E BY group_factor
  /STATISTICS DESCRIPTIVES
  /MISSING ANALYSIS
  /POSTHOC=BONFERRONI ALPHA(0.05).

这里 SPSS 的输出基本上是一个表格,在比较第 1 组与第 2 组、第 2 组与第 3 组等时,为每个特征生成 P 值...

然后我必须手动读取重要的组间结果,然后将符号添加到原始 gtsummary 表中。

有没有办法可以自动化或合并到gtsummary 中?它可以为我节省数小时的繁琐手动工作!

【问题讨论】:

    标签: r gtsummary


    【解决方案1】:

    gtsummary 表是高度可定制的,您可以添加这些脚注。我在下面提供了一个示例,其中对成对比较进行了视觉检查并手动添加了脚注。但是您可以将其包装在一个函数中并以编程方式应用脚注。

    library(gtsummary)
    library(tidyverse)
    packageVersion("gtsummary")
    #> [1] '1.5.0'
    theme_gtsummary_mean_sd()
    
    # build table with one-way ANOVA results
    tbl1 <- 
      trial %>%
      select(marker, grade) %>%
      tbl_summary(by = grade, missing = "no") %>%
      add_p()
    

    # calculate pairwise comparison p-values
    pairwise.t.test(trial[["marker"]], trial[["grade"]], p.adj = "none")
    #> 
    #>  Pairwise comparisons using t tests with pooled SD 
    #> 
    #> data:  trial[["marker"]] and trial[["grade"]] 
    #> 
    #>     I    II  
    #> II  0.01 -   
    #> III 0.64 0.04
    #> 
    #> P value adjustment method: none
    
    # add footnotes for sig comparisons
    tbl2 <-
      tbl1 %>%
      modify_table_styling(
        column = stat_1,
        rows = variable == "marker",
        footnote = "Mean significantly different from Grade II"
      ) %>%
      modify_table_styling(
        column = stat_2,
        rows = variable == "marker",
        footnote = "Mean significantly different from Grade III"
      ) %>%
      modify_table_styling(
        column = stat_3,
        rows = variable == "marker",
        footnote = "Mean significantly different from Grade II"
      )
    

    reprex package (v2.0.1) 于 2021 年 11 月 4 日创建

    【讨论】:

    • 谢谢你!真的很感激!我花了很多时间试图让它适用于多个变量。例如,组之间的“ttdeath”存在显着差异,我试图使其与您共享的 modift_table_styling 代码一起工作,但努力使其工作。它在“marker”而不是“ttdeath”中添加了额外的脚注。对不起,我的R技能可能不是很好!在另一条评论中添加了代码。
    • 对不起,我在这里受到 500 条聊天限制的限制,我在您的网站上看到了您希望通过电子邮件在此处发布的问题的联系方式,以便他们可以帮助每个人寻找类似的解决方案。如果您可以阅读并回复,我已经把我的full comment on here 放了。或者,如果我可以通过电子邮件与您联系,这将非常有帮助 - 然后我会在此处以单独的问题发布“解决方案”?
    • 你好奥利弗!我试了一下编写自动化函数,但也发现它很棘手。不幸的是,我没有时间编写一个通用函数来解决通用级别的问题
    • 嗨,丹,感谢您的回复和帮助。请问我如何使用手动方法和 modify_table_styling() 来处理多个变量?这是简单的事情还是需要复杂的事情(我完全理解我显然无法寻求帮助)。再次感谢您的帮助。
    • 你能提供更多细节吗?我不确定你在问什么......
    猜你喜欢
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多