R: Loads data from file cache

loadCache {R.cache} | R Documentation

## Loads data from file cache

### Description

Loads data from file cache, which is unique for an optional key object.

### Usage

    ## Default S3 method:
    loadCache(key=NULL, sources=NULL, suffix=".Rcache", removeOldCache=TRUE, pathname=NULL,
      dirs=NULL, ..., onError=c("warning", "error", "message", "quiet", "print"))

### Arguments

`key` | An optional object from which a hexadecimal hash code will be generated and appended to the filename.
`sources` | Optional source objects. If the cache object has a timestamp older than one of the source objects, it will be ignored and removed.
`suffix` | A `character` string to be appended to the end of the filename.
`removeOldCache` | If `TRUE` and the cache is older than the `sources`, the cache file is removed, otherwise not.
`pathname` | The pathname to the cache file. If specified, arguments `key` and `suffix` are ignored. Note that this is only needed in order to read a cache file for which the key is unknown, for instance, in order to investigate an unknown cache file.
`dirs` | A `character` `vector` constituting the path to the cache subdirectory (of the cache root directory as returned by `getCacheRootPath`()) to be used. If `NULL`, the path will be the cache root path.
`...` | Not used.
`onError` | A `character` string specifying what the action is if an exception is thrown.

### Details

The hash code calculated from the `key` object is a 32 characters long hexadecimal MD5 hash code. For more details, see `getChecksum`().

### Value

Returns an R object or `NULL`, if cache does not exist.

### Author(s)

Henrik Bengtsson

### See Also

`saveCache`().

### Examples

    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;
    }

    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)))

[Package R.cache version 0.13.0 Index]