load_cache: Load the cache database of a code chunk

View source: R/cache.R

load_cacheR Documentation

Load the cache database of a code chunk

Description

If a code chunk has turned on the chunk option cache = TRUE, a cache database will be established after the document is compiled. You can use this function to manually load the database anywhere in the document (even before the code chunk). This makes it possible to use objects created later in the document earlier, e.g. in an inline R expression before the cached code chunk, which is normally not possible because knitr compiles the document in a linear fashion, and objects created later cannot be used before they are created.

Usage

load_cache(
  label,
  object,
  notfound = "NOT AVAILABLE",
  path = opts_chunk$get("cache.path"),
  dir = opts_knit$get("output.dir"),
  envir = NULL,
  lazy = TRUE
)

Arguments

label

The chunk label of the code chunk that has a cache database.

object

The name of the object to be fetched from the database. If it is missing, NULL is returned).

notfound

A value to use when the object cannot be found.

path

Path of the cache database (normally set in the global chunk option cache.path).

dir

Path to use as the working directory. Defaults to the output directory if run inside a knitr context and to the current working directory otherwise. Any relative path is defined from dir.

envir

Environment to use for cache loading, into which all objects in the cache for the specified chunk (not just that in object) will be loaded. Defaults to the value in knit_global.

lazy

Whether to lazyLoad the cache database (depending on the chunk option cache.lazy = TRUE or FALSE of that code chunk).

Value

Invisible NULL when object is not specified (the cache database will be loaded as a side effect), otherwise the value of the object if found.

Note

Apparently this function loads the value of the object from the previous run of the document, which may be problematic when the value of the object becomes different the next time the document is compiled. Normally you must compile the document twice to make sure the cache database is created, and the object can be read from it. Please use this function with caution.

References

See the example #114 at https://github.com/yihui/knitr-examples.


yihui/knitr documentation built on Nov. 14, 2024, 3:14 p.m.