#randomizer for minPD, rich =vector of commuity richness, or just max and min #Marc Cadotte #Nov 2008 randMinPD<-function (phy,rich,nsamp=1000) { r.levels<-c(min(rich):max(rich)) species<-phy$tip.label min.r<-NULL rand.r<-data.frame(r.levels=NULL,min.r=NULL) for (j in 1:nsamp) { r.tmp<-NULL for (i in 1:length(r.levels)) { sp.tmp<-sample(species,r.levels[i]) dropme<-species[!species %in% sp.tmp] sub.tree<-drop.tip(phy,dropme) dm<-(cophenetic(sub.tree)) r.tmp[i]<-min(dm[lower.tri(dm,diag=F)]) } rand.tmp<-data.frame(r.levels,min.r=r.tmp) rand.r<-rbind(rand.r,rand.tmp) } return(rand.r) }