# DeWalt_etal_2006_R_code.txt # Randomization tests using Dr. Saara DeWalt's Sepilok liana data # Created by Kyle Harms, March 2003 # saara.rand - Runs the analysis using overall relative proportions per habitat type # saara2.rand - Runs the analysis using mean relative proportions per habitat type saara.rand=function(data.in) { # Calculate observed relative proportions data.tab=table(data.in$Plot,data.in$SPCODE) data.alluv=data.tab[1,]+data.tab[2,]+data.tab[3,] data.keran=data.tab[4,]+data.tab[5,]+data.tab[6,] data.sand=data.tab[7,]+data.tab[8,]+data.tab[9,] data.alluv.prop=data.alluv/sum(data.alluv) data.keran.prop=data.keran/sum(data.keran) data.sand.prop=data.sand/sum(data.sand) # Create an empty matrix for output GrLsEq=matrix(0,length(unique(data.in$SPCODE)),12) rownames(GrLsEq)=colnames(data.tab) colnames(GrLsEq)=c("N.Alluv", "Obs.Gr.Alluv", "Obs.Ls.Alluv", "Obs.Eq.Alluv", "N.Keran", "Obs.Gr.Keran", "Obs.Ls.Keran", "Obs.Eq.Keran", "N.Sand", "Obs.Gr.Sand", "Obs.Ls.Sand", "Obs.Eq.Sand") # Add "N" data to output matrix GrLsEq[,1]=data.alluv GrLsEq[,5]=data.keran GrLsEq[,9]=data.sand for(i in 1:1000) { # Randomize data and calculate relative proportions using randomized data data.samp=data.tab[c(sample(1:9)),] data.alluv.samp=data.samp[1,]+data.samp[2,]+data.samp[3,] data.keran.samp=data.samp[4,]+data.samp[5,]+data.samp[6,] data.sand.samp=data.samp[7,]+data.samp[8,]+data.samp[9,] data.alluv.prop.samp=data.alluv.samp/sum(data.alluv.samp) data.keran.prop.samp=data.keran.samp/sum(data.keran.samp) data.sand.prop.samp=data.sand.samp/sum(data.sand.samp) # Compare observed relative proportions to randomized relative proportions and add counts to appropriate tallies for(j in 1:length(unique(data.in$SPCODE))) { if(data.alluv.prop[j]>data.alluv.prop.samp[j]) GrLsEq[j,2]=GrLsEq[j,2]+1 if(data.alluv.prop[j]data.keran.prop.samp[j]) GrLsEq[j,6]=GrLsEq[j,6]+1 if(data.keran.prop[j]data.sand.prop.samp[j]) GrLsEq[j,10]=GrLsEq[j,10]+1 if(data.sand.prop[j]data.alluv.avg.samp[j]) GrLsEq[j,2]=GrLsEq[j,2]+1 if(data.alluv.avg[j]data.keran.avg.samp[j]) GrLsEq[j,6]=GrLsEq[j,6]+1 if(data.keran.avg[j]data.sand.avg.samp[j]) GrLsEq[j,10]=GrLsEq[j,10]+1 if(data.sand.avg[j]