Evaluate an expression if its value is not already cached.

Cache the evaluation of an expression in the file system.

manip, array
cache(expr, dir=".", prefix="tmp_R_cache_", name)
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).
A string specifying the directory into which cache files should be written (also where to go searching for an appropriate cache file).
A string giving the prefix to use when naming and searching for cache files. The default is "tmp_R_cache_"
Unused. This argument is present as a compatibility layer for the deprecated calling convention.

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.


The (cached) value of expr.


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
    bigCalc <- function() runif(10)
    cache(myComplicatedObject <- bigCalc())
    aCopy <- myComplicatedObject
    cache(myComplicatedObject <- bigCalc())
    stopifnot(all.equal(myComplicatedObject, aCopy))
    allCacheFiles <-
       list.files(".", pattern="^tmp_R_cache_.*\\.RData$",
Documentation reproduced from package Biobase, version 2.26.0, License: Artistic-2.0

Community examples

Looks like there are no examples yet.