## Programed by Shang-Yi Lin & Tsung-Chen Hsieh ## Phd student, Institute of Statistics, National Tsing Hua University ## Date: 2011, August ## A Subroutine for analyzing data #Function of plot confidence band. conf.reg=function(x,LCL,UCL,...){ polygon(c(x,rev(x)),c(LCL,rev(UCL)),...) } #Function of calculating the Chao2 estimator. EstS=function(x,T){ D=length(which(x!=0)) Q1=sum(x==1) Q2=sum(x==2) if(Q2==0){out=D+((T-1)/T)*Q1*(Q1-1)/(2)} else {out=D+((T-1)/T)*(Q1^2)/(2*Q2)} return(out) } #Function of summary input data. summary.dat=function(dat,T){ D=apply(as.matrix(dat),2,function(x)sum(x>0)) Q1=apply(as.matrix(dat),2,function(x)sum(x==1)) Q2=apply(as.matrix(dat),2,function(x)sum(x==2)) Sest=rep(0,ncol(dat)) for(i in 1:ncol(dat)){ Sest[i]=EstS(dat[,i],T[i]) } out=cbind(D,Q1,Q2,Sest) colnames(out)=c("D","Q1","Q2","Chao2.est") as.data.frame(out) } pro<-function(A=A,T=T,k=k) { prod1=1 temp1=0 temp2=0 i=c(1:k) temp1=T-A-i+1 temp2=T-i+1 prod1=prod(temp1/temp2) return(prod1) } #Function for rarefaction and extropolation #Y means data, which is a vector. #T means the quadratic numbers. #t means rarified quadratic sequence. #tt means the extrapolation quadratic samples. RareExtro=function(Y,T,t,tt=100){ D=sum(Y>0) Q=rep(0,T) Q=sapply(c(1:T),function(j){sum(Y==j)}) Q0.hat=0 if(Q[2]>0) { Q0.hat=((T-1)/T)*(Q[1]^2)/(2*Q[2]) } if(Q[2]==0) { Q0.hat=((T-1)/T)*(Q[1]*(Q[1]-1))/2 } ####Rarefaction part#### Fun=function(ss){ Sub=function(x){ if((T-x)>=ss) {aa=pro(x,T,ss)} if((T-x)