# Descriptive statistics of a variable (a vector) # Callig: # source(sThisFileName) # resOut <- StatsGroupedData(Chest, Number) Describe <- function(inVec) { sum = 0 sum2 = 0 sum3 = 0 sum4 = 0 N = length(inVec) for (i in 1:N) { tmpVal = as.numeric(inVec[i]) sum = sum + tmpVal tmpVal = tmpVal * inVec[i] sum2 = sum2 + tmpVal tmpVal = tmpVal * inVec[i] sum3 = sum3 + tmpVal tmpVal = tmpVal * inVec[i] sum4 = sum4 + tmpVal } Mean=sum/N tmpVal=Mean*Mean Var = (sum2 - tmpVal*N)/(N-1) SD = sqrt(Var) CV = 100*SD/Mean SE = sqrt(Var/N) CL95 = qt(0.975,N-1)*SE Skewness = sum3 - Mean*(3*sum2 - tmpVal*2*N) Skewness = Skewness/((N-1)*Var*SD) Kurtosis = sum4 - Mean*(4*sum3 - Mean*(6*sum2-3*N*tmpVal)) Kurtosis = Kurtosis / (N-1)/(Var*Var) - 3 qqnorm(inVec) outVec <- c(Mean,Var,SD,CV,CL95,Skewness,Kurtosis) names(outVec) <- c("Mean","Var","SD","CV","CL95","Skewness","Kurtosis") return(outVec) }