【问题标题】:gtsummary R package: pre-post summary table with paired 2-sample tests?gtsummary R 包:带有配对 2 样本测试的事后汇总表?
【发布时间】:2020-12-02 16:16:26
【问题描述】:

是否可以使用 gtsummary R 包制作一个包含 2 列汇总 2 个不同时间点的多个变量的事后汇总表?

我知道arsenal R package 支持这一点,但如果可能的话,我更喜欢使用 gtsummary,因为它支持 tidyverse。

例如,是否可以使用 gtsummary 制作一个与 example 中的表类似的 pre-post 汇总表?这是他们示例中数据集的更简单版本:

 dat <- data.frame(
  tp = paste0("Time Point ", c(1, 2, 1, 2, 1, 2, 1, 2, 1, 2)),
  id = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 6),
  Cat = c("A", "A", "A", "B", "B", "B", "B", "A", NA, "B"),
  Fac = factor(c("A", "B", "C", "A", "B", "C", "A", "B", "C", "A")),
  Num = c(1, 2, 3, 4, 4, 3, 3, 4, 0, NA),
  stringsAsFactors = FALSE)

注意数据集是“长格式”:tp 是 2 个前后时间点,id 是 2 个重复测量的主题 ID。为了制作表格,CatFac 是分类变量,将在每个时间点汇总为 count(%),并使用 McNemar 检验比较它们是否随时间变化。 Num 是一个数值变量,将被汇总为每个时间点的均值(标准差),并使用配对 t 检验来评估随时间的变化。

【问题讨论】:

    标签: r gtsummary


    【解决方案1】:

    是的,从 gtsummary v1.3.6 开始,有一个名为 add_difference() 的函数用于此目的。该函数支持配对(例如响应前和响应后)和非配对数据。该方法在test= 参数中指定。

    这里的例子:http://www.danieldsjoberg.com/gtsummary/articles/gallery.html#paired-test

    这是一个未配对的示例:

      trial %>%
      select(trt, age, marker, response, death) %>%
      tbl_summary(
        by = trt,
        statistic =
          list(
            all_continuous() ~ "{mean} ({sd})",
            all_dichotomous() ~ "{p}%"
          ),
        missing = "no"
      ) %>%
      add_n() %>%
      add_difference()
    

    【讨论】:

    • 谢谢丹尼尔。我也不理解他们示例中的“差异”列。当我使用 arsenal R 包制作 pre-post 汇总表时,我总是删除此列。
    • 不确定分类数据发生了什么,但对于连续数据,“差异”支持中位数之间的差异不是差异中位数的情况。例如,如果时间点 A 的值为 1、2 和 10,而时间点 B 的对应值为 1、12、10,则 tp A 的中位数为 2,时间点 B 的中位数为 10,但中位数从 A 到 B 的变化为 0(1-1、12-2 和 10-10 的中位数)
    猜你喜欢
    • 2023-01-08
    • 1970-01-01
    • 2020-10-08
    • 2023-04-07
    • 2021-07-19
    • 1970-01-01
    • 2020-08-03
    • 2020-08-19
    • 2019-06-01
    相关资源
    最近更新 更多