# 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('
')