# cache

0th

Percentile

##### Evaluate an expression if its value is not already cached.

Cache the evaluation of an expression in the file system.

Keywords
manip, array
##### Usage
cache(expr, dir=".", prefix="tmp_R_cache_", name)
##### Arguments
expr
An expression of the form LHS <- RHS, Where LHS is a variable name, RHS is any valid expression, and <- must be used (= will not work).
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 "tmp_R_cache_"
name
Unused. This argument is present as a compatibility layer for the deprecated calling convention.
##### 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 now deprecated (but still functional). The old version has arguments name and expr and the intended usage is: foo <- cache("foo", expr).

• cache
##### 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)

Documentation reproduced from package Biobase, version 2.26.0, License: Artistic-2.0

### Community examples

Looks like there are no examples yet.