RACB.Diversity<-function(data,metric="Sorenson",sim.iter=1000,samp.stand=T,samp.stand.size=0.6,samp.stand.iter=1000) { output<-vector(length=7) names(output)<-c("Raw Beta Diversity","Null Expectation","Null Upper","Null Lower","RAC Beta Diversity","RAC Upper","RAC Lower") freq<-data print("Calculating Raw Beta Diversity") if(samp.stand==F) { test.data<-freq if(metric=="Forbes") { distances<-Alroy_Forbes(test.data) } else if(metric=="Sorenson") { distances<-1-betadiver(t(test.data),method=11) } else if(metric=="Lennon") { distances<-betadiver(t(test.data),method=22) } else(distances<-vegdist(t(test.data),"bray")) output["Raw Beta Diversity"]<-mean(distances) } else { goods.u.vals<-vector(length=ncol(freq)) for(i in 1:length(goods.u.vals)) { singletons<-length(which(freq[,i]==1)) specimens<-sum(freq[,i]) goods.u.vals[i]<-1 - singletons / specimens } stand.beta.divs<-vector(length=samp.stand.iter) test.data<-freq[,which(goods.u.vals>=samp.stand.size)] for(i in 1:samp.stand.iter) { sub.data<-matrix(nrow=nrow(test.data),ncol=ncol(test.data),data=0) rownames(sub.data)<-rownames(test.data) colnames(sub.data)<-colnames(test.data) for(j in 1:ncol(test.data)) { samp.order<-sample(rep(rownames(test.data),test.data[,j])) u.seq<-vector(length=length(samp.order)) for(k in 1:length(u.seq)) { sub.test<-table(samp.order[1:k]) specimens<-sum(sub.test) singletons<-length(which(sub.test==1)) u.seq[k]<-1-singletons/specimens } drawn<-table(samp.order[1:(max(which(u.seqsamp.stand.size)] for(j in 1:samp.stand.iter) { sub.data<-matrix(nrow=nrow(test.data),ncol=ncol(test.data),data=0) rownames(sub.data)<-rownames(test.data) colnames(sub.data)<-colnames(test.data) for(k in 1:ncol(test.data)) { samp.order<-sample(rep(rownames(test.data),test.data[,k])) u.seq<-vector(length=length(samp.order)) for(m in 1:length(u.seq)) { sub.test<-table(samp.order[1:m]) specimens<-sum(sub.test) singletons<-length(which(sub.test==1)) u.seq[m]<-1-singletons/specimens } drawn<-table(samp.order[1:(max(which(u.seq