Sometimes you use significant computational power to create an object, but you didn't cache it with simpleCache. Oops, maybe you wish you had, after the fact. This function lets you store an object in the environment so it could be loaded by future calls to simpleCache.

storeCache(cacheName, cacheDir = getCacheDir(), cacheSubDir = NULL,
  recreate = FALSE)

Arguments

cacheName

Unique name for the cache (and R object to be cached).

cacheDir

The directory where caches are saved (and loaded from). Defaults to the global RCACHE.DIR variable

cacheSubDir

You can specify a subdirectory within the cacheDir variable. Defaults to NULL.

recreate

Forces reconstruction of the cache

Details

This can be used in interactive sessions, but could also be used for another use case: you have a complicated set of instructions (too much to pass as the instruction argument to simpleCache), so you could just stick a call to storeCache at the end.

Examples

# choose location to store caches cacheDir = tempdir() cacheDir
#> [1] "/tmp/RtmpnwNyJo"
setCacheDir(cacheDir) # build some caches simpleCache("normSample", { rnorm(5e3, 0,1) }, recreate=TRUE, timer=TRUE)
#> ::Creating cache:: /tmp/RtmpnwNyJo/normSample.RData
#> <00h 00m 0.0s>
simpleCache("normSample", { rnorm(5e3, 0,1) })
#> ::Loading cache:: /tmp/RtmpnwNyJo/normSample.RData
simpleCache("normSample", { rnorm(5e3, 0,1) }, reload=TRUE)
#> ::Loading cache:: /tmp/RtmpnwNyJo/normSample.RData
# storing a cache after-the-fact normSample2 = rnorm(10, 0, 1) storeCache("normSample2")
#> ::Object does not exist:: normSample2
#> NULL
# what's available? listCaches()
#> [1] "normSample.RData"
# load a cache simpleCache("normSample")
#> ::Loading cache:: /tmp/RtmpnwNyJo/normSample.RData
# load multiples caches loadCaches(c("normSample", "normSample2"), reload=TRUE)
#> ::Loading cache:: /tmp/RtmpnwNyJo/normSample.RData
#> ::Creating cache:: /tmp/RtmpnwNyJo/normSample2.RData
#> Error in doTryCatch(return(expr), name, parentenv, handler): ::Error:: If you do not provide an instruction argument, you must setglobal option RBUILD.DIR with setCacheBuildDir, or specify a buildDirparameter directly to simpleCache().