我对 R 很陌生,对这个网站完全陌生,所以我真的希望我能够以清晰的方式传达我的问题。
以下是我的数据集的一部分:
A1<-c(0.308, 0.3624, 0.1861, 0.6176, 0.0506, 0.1014, 0.2245, 0.1894, 0.246, 0.1795)
A2<-c(0.0785, 0.1583, 0.1803, 0.0538, 0.0534, 0.0646, 0.0902, 0.0307, 0.2002, 0.1135, 0.0862)
B1<-c(0.293, 0.2159, 0.1919, 0.1904, 0.1274, 0.1482, 0.1579, 0.3284, 0.1948, 0.3159, 0.1764, 0.0403)
B2<-c(0.0741, 0.0601, 0.0273, 0.077, 0.1214, 0.0837, 0.0521, 0.0746, 0.0733, 0.0403, 0.0544)
数据呈正态分布,但显示异方差性,因此我在创建数据框后使用了带有 Welch 校正的 ANOVA:
(X <- data.frame(Y = c(A1,A2,B1,B2), Group = rep(c("A1", "A2", "B1", "B2"), times = c(length(A1), length(A2), length(B1), length(B2)))))
oneway.test(Y ~ Group, data = X)
One-way analysis of means (not assuming equal variances)
data: Y and Group
F = 12.346, num df = 3.000, denom df = 19.002, p-value = 0.0001037
然后,我使用具有非合并标准差(由于异方差)的成对 t 检验进行事后比较
with(X, pairwise.t.test(Y, Group, pool.sd=FALSE))
Pairwise comparisons using t tests with non-pooled SD
data: Y and Group
A1 A2 B1
A2 0.05617 - -
B1 0.40115 0.01665 -
B2 0.02360 0.17723 0.00089
P value adjustment method: holm
我的问题是我对所有的比较都不是很感兴趣,我真的只想比较 A1 和 A2,B1 和 B2 等等。我的数据集还包括 C1&2、D1&2 和 E1&2,所以我通过 p 值调整失去了相当多的意义,因为 t 检验运行了 45 对。
我当然可以通过函数单独运行我感兴趣的每个 t 检验t.test()
并手动调整 p 值。但是,我很快就会有一个类似但更大的数据集,这使这项工作变得非常乏味。所以我想知道 R 中是否有一个选项可以选择包含在 中的比较pairwise.t.test()
,或者是否有另一个 post hoc 选项可以实现这一点。
任何建议将不胜感激。