【发布时间】:2021-12-25 07:35:06
【问题描述】:
刚开始在 Stack 上发帖,如有任何问题,我们深表歉意。
我正在学习如何在 R 中更加自如,目前正在考虑使用 broom/purr 一次运行多个统计测试。我当前数据的一个示例如下所示:
| Subject | PreScoreTestA | PostScoreTestA | PreScoreTestB | PostScoreTestB | PreScoreTestC | PostScoreTestC |
|---|---|---|---|---|---|---|
| 1 | 30 | 40 | 6 | 8 | 12 | 10 |
| 2 | 15 | 12 | 9 | 13 | 7 | 7 |
| 3 | 20 | 22 | 11 | 12 | 9 | 10 |
但是在许多科目和更多测试中。我想进行相关 t 检验以查看分数在培训计划过程中的变化,但不想对每个分数进行测试。
我见过一些使用 group by、nest 和 map 来运行多个 t 检验的示例,但他们的数据格式较长
有没有办法在宽格式下实现相同的目标?或者我是否需要使用 pivot_longer 来更改数据。
提前致谢!
ETA 在这里进行了编辑,但给出的结果不正确,因此已被删除仍在寻找有关参数和相同长度的帮助
预计到达时间第 2 版
我确实找到了使用 pairwise.t.test 的解决方法(代码如下)。它给出了与跨个体评估进行 t.test 相同的 p 值。我很好奇为什么它适用于pairwise.t.test 而不是t.test。如果有人有任何想法,请告诉我!
results <- testb %>%
pivot_longer(-Subject,
names_to = c("time", "test"), values_to = "score",
names_pattern = "(Pre|Post)(.*)") %>%
group_by(test) %>%
nest() %>%
mutate(ttests = map(.x=data, ~tidy(pairwise.t.test(.x$score, .x$time, paired = TRUE, p.adjust.method = "none")))) %>%
unnest(ttests)
【问题讨论】:
-
您很可能需要转置数据,因为它的格式不整齐。您正在测试的假设到底是什么?您是否尝试为每个不同的测试(即 TestA、TestB、TestC)生成 t 检验比较?
-
@MrFlick 感谢您的回复,关于数据透视的任何提示?我试图弄清楚但遇到了一些困难。每项测试都是一次体能评估。假设是经过一段时间的训练后,受试者的体能会显着提高。是的,这将是每个评估的 t 检验比较