2016-12-10 4 views
1

I haben die folgenden Daten (DAT)Wie Tuekes paarweiser Test in R durchzuführen?

I haben die folgenden Daten (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 

Ich wünsche TukeysHSD paarweisen Test auf die obigen Datensatz auszuführen.

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

Jedes Mal, wenn ich versuche, es auszuführen, läuft es weiter und liefert keine Ausgabe. Irgendwelche Vorschläge, wie man das korrigiert?

Ich würde auch gerne den gleichen Test mit der Funktion TukeyHSD() durchführen. Allerdings, wenn ich versuche, das breit/lang-Format zu verwenden, ich laufe in einen Fehler, der sagt

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

Antwort

4

Wir brauchen ‚x‘ Dat1 $ Wert zu sein, da es nicht das erste Argument angegeben wird genommen als ‚x 'und die zweite als 'g'

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 

Oder wir das Argument angeben und in beliebiger Reihenfolge verwenden wollten wir

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

in Bezug auf die 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 
+0

Wenn ich die Funktion TukeyHSD() verwenden möchte, kann ich das im langen Format tun? – Biotechgeek

+0

@Biotechgeek Vielleicht 'TukeyHSD (aov (Wert ~ Taste, Daten = Dat1), bestellt = WAHR)' – akrun

+1

Danke! Das war sehr hilfreich – Biotechgeek