如何在R中执行Tukey的成对测试?

时间:2016-12-10 16:29:55

标签: r statistics runtime-error tukey

我有以下数据(dat)

我有以下数据(dat)

V  W  X    Y   Z
1  8  89   3  900
1  8  100  2  800
0  9  333  4  980
0  9  560  1  999

我希望对上述数据集执行TukeysHSD成对测试。

library(reshape2)
dat1 <- gather(dat) #convert to long form
pairwise.t.test(dat1$key, dat1$value, p.adj = "holm")

但是,每次我尝试运行它时,它都会继续运行并且不会产生输出。有关如何纠正此问题的任何建议吗?

我还想使用TukeyHSD()函数执行相同的测试。但是,当我尝试使用宽/长格式时,我遇到了一个错误,说

    " Error in UseMethod("TukeyHSD") : 
  no applicable method for 'TukeyHSD' applied to an object of class "data.frame"

1 个答案:

答案 0 :(得分:4)

我们需要&#39; x&#39;为dat1 $ value,因为未指定第一个参数被视为&#39; x&#39;第二个是&#39; g&#39;

pairwise.t.test( dat1$value, dat1$key, p.adj = "holm")
#data:  dat1$value and dat1$key 

#  V       W       X       Y      
#W 1.000   -       -       -      
#X 0.018   0.018   -       -      
#Y 1.000   1.000   0.018   -      
#Z 4.1e-08 4.1e-08 2.8e-06 4.1e-08

#P value adjustment method: holm 

或者我们以任何我们想要的顺序指定参数和使用

pairwise.t.test(g = dat1$key, x= dat1$value, p.adj = "holm")

关于TukeyHSD

TukeyHSD(aov(value~key, data = dat1), ordered = TRUE)
#Tukey multiple comparisons of means
#    95% family-wise confidence level
#    factor levels have been ordered

#Fit: aov(formula = value ~ key, data = dat1)

#$key
#      diff        lwr       upr     p adj
#Y-V   2.00 -233.42378  237.4238 0.9999999
#W-V   8.00 -227.42378  243.4238 0.9999691
#X-V 270.00   34.57622  505.4238 0.0211466
#Z-V 919.25  683.82622 1154.6738 0.0000000
#W-Y   6.00 -229.42378  241.4238 0.9999902
#X-Y 268.00   32.57622  503.4238 0.0222406
#Z-Y 917.25  681.82622 1152.6738 0.0000000
#X-W 262.00   26.57622  497.4238 0.0258644
#Z-W 911.25  675.82622 1146.6738 0.0000000
#Z-X 649.25  413.82622  884.6738 0.0000034