# Make certain the result doesn't print. invisible(capture.output({library(utils); library(R2HTML)})) verbose = FALSE if(verbose) { print(class(formData)) print(names(formData)) print(formData) for(i in names(formData)) cat(i, ":", formData[[i]], is.na(formData[[i]]), "
\n") cat("Working directory:", getwd(), "\n") showEnvironmentVariables() } # Get the statistic function either as the name of a function or an inline function definition. # Be wary of the latter!!!!! if(is.null(formData$statistic)) { cat("No statistic selected") q() } if(exists(formData$statistic, mode = "function")) { T = get(formData$statistic, mode = "function") } else { T = eval(parse(text = formData$statistic)) if(!is.function(T)) { print("Error in HTML form. Statistic must be a function name or function definition") q() } } # Read the data. dataNotFromFile = is.null(formData$dataFile) || formData$dataFile == "" || formData$dataFile == "NA" || is.na(formData$dataFile) values = scan(textConnection(ifelse(dataNotFromFile, formData$values, formData$dataFile))) n = length(values) tstar = sapply(1:as.integer(formData$NumRep), function(i) T(values[sample(n, replace = TRUE)])) # Get the multiple entries for output. output = formData$output if("summary" %in% output) HTML(summary(tstar), file = stdout()) # Can specify graphDir and graphURLroot locally for the calls. webPNG("boot.jpg", type = "jpeg", graphDir = "../htdocs/tmp/") hist(tstar, prob = TRUE, main = paste("Bootstrap for", formData$statistic)) img("boot.jpg", graphURLroot = "/tmp/") # or set them globally. graphDir = "../htdocs/tmp/" graphURLroot = "/tmp/" cat("And a second plot
") webPNG("boot1.jpg", type = "jpeg") hist(tstar, prob = TRUE, main = paste("Bootstrap for", formData$statistic)) img("boot1.jpg") # And a third plot that overrides these webPNG("boot.jpg", type = "jpeg", graphDir = "../htdocs/tmp1/") hist(tstar^2, prob = TRUE, main = paste("Bootstrap for square of ", formData$statistic)) img("boot.jpg", graphURLroot = "/tmp1/") # Note that this is the manual version that is relative to the Web servers / #cat('
')