1achisq.stat<-function(data, lambda=NULL) 2{ 3 4 df<-length(data$Observed) 5 6 7 #If internal standardization was used then lambda=1 and df=n-1 8 if(sum(data$Observed)==sum(data$Expected)) 9 { 10 lambda<-1 11 df<-df-1 12 } 13 else 14 { 15 #If lambda is unknown then we must slightly modify E_i 16 if(is.null(lambda)) 17 { 18 lambda<-sum(data$Observed)/sum(data$Expected) 19 df<-df-1 20 } 21 } 22 23 Elambda<-data$Expected*lambda 24 25 T<-sum((data$Observed-Elambda)^2/Elambda) 26 pvalue<-pchisq(T, df, lower.tail=FALSE) 27 28 return( list(T=T, df=df, pvalue=pvalue) ) 29} 30