x <- c(41086,39690,43129,37863,35953,29133,24693,22205,21725,27192,21790,13253,37702,30364,32609,30212,29965,28352,25814,22414,20506,28806,22228,13971,36845,35338,35022,34777,26887,23970,22780,17351,21382,24561,17409,11514,31514,27071,29462,26105,22397,23843,21705,18089,20764,25316,17704,15548,28029,29383,36438,32034,22679,24319,18004,17537,20366,22782,19169,13807,29743,25591,29096,26482,22405,27044,17970,18730,19684,19785,18479,10698) #'GNU S' R Code compiled by R2WASP v. 1.0.44 () #Author: Prof. Dr. P. Wessa #To cite this work: AUTHOR(S), (YEAR), YOUR SOFTWARE TITLE (vNUMBER) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_YOURPAGE.wasp/ #Source of accompanying publication: Office for Research, Development, and Education #Technical description: Write here your technical program description (don't use hard returns!) x <-sort(x[!is.na(x)]) q1 <- function(data,n,p,i,f) { np <- n*p; i <<- floor(np) f <<- np - i qvalue <- (1-f)*data[i] + f*data[i+1] } q2 <- function(data,n,p,i,f) { np <- (n+1)*p i <<- floor(np) f <<- np - i qvalue <- (1-f)*data[i] + f*data[i+1] } q3 <- function(data,n,p,i,f) { np <- n*p i <<- floor(np) f <<- np - i if (f==0) { qvalue <- data[i] } else { qvalue <- data[i+1] } } q4 <- function(data,n,p,i,f) { np <- n*p i <<- floor(np) f <<- np - i if (f==0) { qvalue <- (data[i]+data[i+1])/2 } else { qvalue <- data[i+1] } } q5 <- function(data,n,p,i,f) { np <- (n-1)*p i <<- floor(np) f <<- np - i if (f==0) { qvalue <- data[i+1] } else { qvalue <- data[i+1] + f*(data[i+2]-data[i+1]) } } q6 <- function(data,n,p,i,f) { np <- n*p+0.5 i <<- floor(np) f <<- np - i qvalue <- data[i] } q7 <- function(data,n,p,i,f) { np <- (n+1)*p i <<- floor(np) f <<- np - i if (f==0) { qvalue <- data[i] } else { qvalue <- f*data[i] + (1-f)*data[i+1] } } q8 <- function(data,n,p,i,f) { np <- (n+1)*p i <<- floor(np) f <<- np - i if (f==0) { qvalue <- data[i] } else { if (f == 0.5) { qvalue <- (data[i]+data[i+1])/2 } else { if (f < 0.5) { qvalue <- data[i] } else { qvalue <- data[i+1] } } } } lx <- length(x) qval <- array(NA,dim=c(99,8)) mystep <- 25 mystart <- 25 if (lx>10){ mystep=10 mystart=10 } if (lx>20){ mystep=5 mystart=5 } if (lx>50){ mystep=2 mystart=2 } if (lx>=100){ mystep=1 mystart=1 } for (perc in seq(mystart,99,mystep)) { qval[perc,1] <- q1(x,lx,perc/100,i,f) qval[perc,2] <- q2(x,lx,perc/100,i,f) qval[perc,3] <- q3(x,lx,perc/100,i,f) qval[perc,4] <- q4(x,lx,perc/100,i,f) qval[perc,5] <- q5(x,lx,perc/100,i,f) qval[perc,6] <- q6(x,lx,perc/100,i,f) qval[perc,7] <- q7(x,lx,perc/100,i,f) qval[perc,8] <- q8(x,lx,perc/100,i,f) } postscript(file="/var/www/html/rcomp/tmp/1ccfd1267626671.ps",horizontal=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) myqqnorm <- qqnorm(x,col=2) qqline(x) grid() dev.off() #Note: the /var/www/html/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab load(file="/var/www/html/rcomp/createtable") a<-table.start() a<-table.row.start(a) a<-table.element(a,'Percentiles - Ungrouped Data',9,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'p',1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_1.htm', 'Weighted Average at Xnp',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_2.htm','Weighted Average at X(n+1)p',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_3.htm','Empirical Distribution Function',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_4.htm','Empirical Distribution Function - Averaging',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_5.htm','Empirical Distribution Function - Interpolation',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_6.htm','Closest Observation',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_7.htm','True Basic - Statistics Graphics Toolkit',''),1,TRUE) a<-table.element(a,hyperlink('http://www.xycoon.com/method_8.htm','MS Excel (old versions)',''),1,TRUE) a<-table.row.end(a) for (perc in seq(mystart,99,mystep)) { a<-table.row.start(a) a<-table.element(a,round(perc/100,2),1,TRUE) for (j in 1:8) { a<-table.element(a,round(qval[perc,j],6)) } a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/var/www/html/rcomp/tmp/2wk6z1267626671.tab") try(system("convert tmp/1ccfd1267626671.ps tmp/1ccfd1267626671.png",intern=TRUE))