cache                package: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_", 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)'.

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)

