Kode paling sederhana yang muncul di benak saya ditunjukkan di bawah ini. Saya cukup yakin ada beberapa fungsi yang sudah ada untuk melakukan itu pada CRAN tetapi saya terlalu malas untuk mencari mereka, bahkan pada pencarian-R .
dd <- data.frame(y=as.vector(unlist(junk)),
g=rep(paste("g", 1:4, sep=""), unlist(lapply(junk, length))))
aov.res <- kruskal.test(y ~ g, data=dd)
alpha.level <- .05/nlevels(dd$g) # Bonferroni correction, but use
# whatever you want using p.adjust()
# generate all pairwise comparisons
idx <- combn(nlevels(dd$g), 2)
# compute p-values from Wilcoxon test for all comparisons
pval.res <- numeric(ncol(idx))
for (i in 1:ncol(idx))
# test all group, pairwise
pval.res[i] <- with(dd, wilcox.test(y[as.numeric(g)==idx[1,i]],
y[as.numeric(g)==idx[2,i]]))$p.value
# which groups are significantly different (arranged by column)
signif.pairs <- idx[,which(pval.res<alpha.level)]
boxplot(y ~ g, data=dd, ylim=c(min(dd$y)-1, max(dd$y)+1))
# use offset= to increment space between labels, thanks to vectorization
for (i in 1:ncol(signif.pairs))
text(signif.pairs[,i], max(dd$y)+1, letters[i], pos=4, offset=i*.8-1)
Berikut adalah contoh dari apa yang dihasilkan oleh kode di atas (dengan perbedaan yang signifikan antara keempat kelompok):
Alih-alih tes Wilcoxon, orang bisa mengandalkan prosedur yang diimplementasikan dalam kruskalmc()
fungsi dari paket pgirmess (lihat deskripsi prosedur yang digunakan di sini ).
Juga, pastikan untuk memeriksa tips R Rudolf Cardinal tentang R: grafik dasar 2 (lihat khususnya, grafik batang lain, dengan anotasi ).
with(dd,
instruksi berada di tempat yang salah mengakibatkan tes aneh!). Terima kasih telah menangkap itu! Ya, saya tidak menggunakan hasil dari tes KW tapi itu selalu ide yang baik untuk memeriksanya terlebih dahulu, jika beberapa tes post-hoc akan menjadi tidak berarti (atau paling tidak, menganjurkan data mengintai). Catatan saya telah memperbaiki kode dan ternyata tidak ada yang signifikan, tetapi saya meninggalkan gambar asli demi kejelasan dengan hasil yang signifikan.