R version 2.13.0 (2011-04-13) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: i486-pc-linux-gnu (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > x <- c(1.439 + ,1.444 + ,1.435 + ,1.430 + ,1.427 + ,1.453 + ,1.448 + ,1.456 + ,1.449 + ,1.437 + ,1.437 + ,1.428 + ,1.413 + ,1.406 + ,1.414 + ,1.415 + ,1.409 + ,1.407 + ,1.400 + ,1.397 + ,1.391 + ,1.394 + ,1.398 + ,1.385 + ,1.369 + ,1.368 + ,1.376 + ,1.374 + ,1.372 + ,1.357 + ,1.361 + ,1.365 + ,1.373 + ,1.357 + ,1.352 + ,1.363 + ,1.358 + ,1.355 + ,1.349 + ,1.357 + ,1.353 + ,1.355 + ,1.364 + ,1.367 + ,1.358 + ,1.366 + ,1.356 + ,1.361 + ,1.366 + ,1.377 + ,1.371 + ,1.372 + ,1.376 + ,1.366 + ,1.355 + ,1.347 + ,1.352 + ,1.334 + ,1.336 + ,1.335 + ,1.347 + ,1.348 + ,1.348 + ,1.347 + ,1.340 + ,1.334 + ,1.330 + ,1.338 + ,1.359 + ,1.358 + ,1.362 + ,1.354 + ,1.354 + ,1.343 + ,1.349 + ,1.337 + ,1.334 + ,1.331 + ,1.332 + ,1.329 + ,1.325 + ,1.326 + ,1.332 + ,1.324 + ,1.309 + ,1.292 + ,1.273 + ,1.275 + ,1.297 + ,1.270 + ,1.267 + ,1.259 + ,1.249 + ,1.235 + ,1.243 + ,1.227 + ,1.233 + ,1.250 + ,1.236 + ,1.222 + ,1.231 + ,1.226 + ,1.238 + ,1.231 + ,1.216 + ,1.222 + ,1.227 + ,1.206 + ,1.196 + ,1.194 + ,1.201 + ,1.205 + ,1.213 + ,1.225 + ,1.226 + ,1.228 + ,1.236 + ,1.237 + ,1.239 + ,1.226 + ,1.227 + ,1.226 + ,1.229 + ,1.234 + ,1.220 + ,1.227 + ,1.233 + ,1.255 + ,1.253 + ,1.258 + ,1.257 + ,1.266 + ,1.264 + ,1.257 + ,1.257 + ,1.270 + ,1.283 + ,1.300 + ,1.296 + ,1.284 + ,1.282 + ,1.285 + ,1.290 + ,1.293 + ,1.303 + ,1.299 + ,1.307 + ,1.303 + ,1.307 + ,1.322 + ,1.321 + ,1.318 + ,1.318 + ,1.325 + ,1.313 + ,1.302 + ,1.279 + ,1.280 + ,1.282 + ,1.286 + ,1.288 + ,1.284 + ,1.271 + ,1.270 + ,1.261 + ,1.261 + ,1.269 + ,1.271 + ,1.270 + ,1.268 + ,1.280 + ,1.282 + ,1.283 + ,1.287 + ,1.274 + ,1.270 + ,1.272 + ,1.273 + ,1.280 + ,1.285 + ,1.299 + ,1.308 + ,1.306 + ,1.307 + ,1.312 + ,1.336 + ,1.332 + ,1.341 + ,1.348 + ,1.346 + ,1.361 + ,1.365 + ,1.373 + ,1.371 + ,1.378 + ,1.386 + ,1.397 + ,1.387 + ,1.394 + ,1.383 + ,1.396 + ,1.410 + ,1.409 + ,1.390 + ,1.386 + ,1.386 + ,1.402 + ,1.393 + ,1.403 + ,1.391 + ,1.380 + ,1.386 + ,1.386 + ,1.393 + ,1.402 + ,1.401 + ,1.424 + ,1.408 + ,1.392 + ,1.395 + ,1.377 + ,1.370 + ,1.371 + ,1.363 + ,1.361 + ,1.348 + ,1.365 + ,1.367 + ,1.365 + ,1.350 + ,1.334 + ,1.332 + ,1.323 + ,1.315 + ,1.300 + ,1.312 + ,1.316 + ,1.325 + ,1.328 + ,1.336 + ,1.320 + ,1.321 + ,1.324 + ,1.327 + ,1.344 + ,1.336 + ,1.324 + ,1.326 + ,1.315 + ,1.316 + ,1.311 + ,1.306 + ,1.310 + ,1.314 + ,1.320 + ,1.314 + ,1.328 + ,1.336) > 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/wessaorg/rcomp/tmp/1gbxx1324631022.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) > myqqnorm <- qqnorm(x,col=2) > qqline(x) > grid() > dev.off() null device 1 > > #Note: the /var/wessaorg/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab > load(file="/var/wessaorg/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/wessaorg/rcomp/tmp/2fipw1324631022.tab") > > try(system("convert tmp/1gbxx1324631022.ps tmp/1gbxx1324631022.png",intern=TRUE)) character(0) > > > proc.time() user system elapsed 1.063 0.120 1.184