[R] mann-whitney test with more groups

Peter Ehlers ehlers at ucalgary.ca
Wed Nov 18 17:26:43 CET 2009


Kim Vanselow wrote:
> Dear r-helpers,
> I want to test groups of samples for significant differences.
> Question: Does Group1 differ significantly from group2.
> This is a question to be answered by mann-whitney-u-test.
> 
> I know that I can use wilcox.test with 2 samples.
> 
> My problem: How can r perform the test automatically if there are more than 2 groups in my data frame.
> Test group1 vs. 2, 1 vs. 3, 1 vs. 4, etc.
> 
> 
> This is my skript:
> Deckung <- read.table("Gesamtdeckung.csv", sep=";", header=TRUE, dec=",", row.names=1)
> 
> x <- Deckung$Gesamtdeckung
> y <- Deckung$Klasse
> 
> #U-Test
> wilcox.test(x ~ y, paired = FALSE, subset = y %in% c("1", "2"))
> wilcox.test(x ~ y, paired = FALSE, subset = y %in% c("1", "3"))
> wilcox.test(x ~ y, paired = FALSE, subset = y %in% c("2", "3"))
> 
> Any help would be greatly appreciated!
> 
> Thanks
> Kim 

This sounds like serious data dredging, but if you're
sure that it's what you want, try the combn() function:

  y <- gl(4, 5)
  x <- rnorm(20)
  m <- cbind(t(combn(4, 2)), NA)
  for(i in 1:nrow(idx))
     m[i, 3] <-
       wilcox.test(x ~ y, subset = y %in% idx[i,])$p.value
  m

  -Peter Ehlers




More information about the R-help mailing list