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,
NULLis returned).- notfound
A value to use when the
objectcannot 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
pathis defined fromdir.- 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 inknit_global.- lazy
Whether to
lazyLoadthe cache database (depending on the chunk optioncache.lazy = TRUEorFALSEof 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.