| cache {Biobase} | R Documentation |
Evaluate an expression if its value is not already cached.
Description
Cache the evaluation of an expression in the file system.
Usage
cache(expr, dir=".", prefix="tmp_R_cache_")
Arguments
expr |
An expression of the form |
dir |
A string specifying the directory into which cache files should be written (also where to go searching for an appropriate cache file). |
prefix |
A string giving the prefix to use when naming and
searching for cache files. The default is |
Details
This function can be useful during the development of computationally
intensive workflows, for example in vignettes or scripts. The
function uses a cache file in dir which defaults to the current
working directory whose name is obtained by paste(prefix, name,
".RData", sep="").
When cache is called and the cache file exists, it is loaded
and the object whose name is given on the left of <- in
expr is returned. In this case, expr is not
evaluted.
When cache is called and the cache file does not exist,
expr is evaluted, its value is saved into a cache file, and
then its value is returned.
The expr argument must be of the form of someVar <-
{expressions}. That is, the left hand side must be a single symbol
name and the next syntactic token must be <-.
To flush the cache and force recomputation, simply remove the cache
files. You can use file.remove to do this.
Value
The (cached) value of expr.
Note
The first version of this function had a slightly different interface
which is no longer functional. The old version has arguments
name and expr and the intended usage is: foo <-
cache("foo", expr).
Author(s)
Wolfgang Huber, huber@ebi.ac.uk Seth Falcon, sfalcon@fhcrc.org
Examples
bigCalc <- function() runif(10)
cache(myComplicatedObject <- bigCalc())
aCopy <- myComplicatedObject
remove(myComplicatedObject)
cache(myComplicatedObject <- bigCalc())
stopifnot(all.equal(myComplicatedObject, aCopy))
allCacheFiles <-
list.files(".", pattern="^tmp_R_cache_.*\\.RData$", full.name=TRUE)
file.remove(allCacheFiles)