library("R.cache")
oopts <- options("R.cache.compress")
simulate <- function(mean, sd) {
# 1. Try to load cached data, if already generated
key <- list(mean, sd)
data <- loadCache(key)
if (!is.null(data)) {
cat("Loaded cached data\n")
return(data)
}
# 2. If not available, generate it.
cat("Generating data from scratch...")
data <- rnorm(1000, mean=mean, sd=sd)
Sys.sleep(1) # Emulate slow algorithm
cat("ok\n")
saveCache(data, key=key, comment="simulate()")
data
}
for (compress in c(FALSE, TRUE)) {
options("R.cache.compress"=compress)
data <- simulate(2.3, 3.0)
data <- simulate(2.3, 3.5)
data <- simulate(2.3, 3.0) # Will load cached data
# Clean up
file.remove(findCache(key=list(2.3,3.0)))
file.remove(findCache(key=list(2.3,3.5)))
}
## Exceptions
res <- try(findCache(key = NULL))
stopifnot(inherits(res, "try-error"))
## Cleanup
options(oopts)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.