#mean difference perm.test<-function(x,y,iter=10000){ d<-c(x,y) n1<-length(x) n<-length(d) st<-rep(NA,iter) for (i in 1:iter){ v<-sample(1:n,n1) st[i]<-mean(d[v])-mean(d[-v])} obs.st<-mean(x)-mean(y) p1<-sum(ifelse(st>=obs.st,1,0))/iter p2<-sum(ifelse(st<=obs.st,1,0))/iter p<-min(p1,p2)*2 #two-sided p-value list(obs.stat=obs.st,perm.dist=st,p.value=p)} #median difference st[i]<-median(d[v])-median(d[-v])} obs.st<-median(x)-median(y) #rank sum st[i]<-sum(rank(d)[v])} obs.st<-sum(rank(d)[1:n1]) #t-statistic st[i]<-as.numeric(t.test(d[v],d[-v])$statistic)} obs.st<-as.numeric(t.test(x,y)$statistic)