| 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)
 }
 bitmap(file='test1.png')
 myqqnorm <- qqnorm(x,col=2)
 qqline(x)
 grid()
 dev.off()
 load(file='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('method_1.htm', 'Weighted Average at Xnp',''),1,TRUE)
 a<-table.element(a,hyperlink('method_2.htm','Weighted Average at X(n+1)p',''),1,TRUE)
 a<-table.element(a,hyperlink('method_3.htm','Empirical Distribution Function',''),1,TRUE)
 a<-table.element(a,hyperlink('method_4.htm','Empirical Distribution Function - Averaging',''),1,TRUE)
 a<-table.element(a,hyperlink('method_5.htm','Empirical Distribution Function - Interpolation',''),1,TRUE)
 a<-table.element(a,hyperlink('method_6.htm','Closest Observation',''),1,TRUE)
 a<-table.element(a,hyperlink('method_7.htm','True Basic - Statistics Graphics Toolkit',''),1,TRUE)
 a<-table.element(a,hyperlink('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='mytable.tab')
 
 |