Sharing caches across projects
By default, simpleCache
will store its caches for your
project in the RCACHE.DIR
global option. This is designed
to be a project-specific directory, so I have a different RCache dir for
each of my projects. Sometimes, though, I want to share caches across
projects, and so it’s useful to have a definition of a shared cache
directory. I think of this as a general resource. For instance, I use
this to store the location of all CpGs in the human genome, which I use
repeatedly in many projects.
To solve this problem, simpleCache
uses a second global
option, SHARE.RCACHE.DIR
, which you can access with the
convenience setter setSharedCacheDir()
. Then, you use
simpleCache
as normal but with the additional parameter of
cacheDir, or the convenience alias simpleCacheShared()
, as
outlined below:
library(simpleCache)
cacheDir = tempdir()
setSharedCacheDir(cacheDir)
simpleCacheShared("normSample", { rnorm(1e7, 0,1) }, recreate=TRUE)
## ::Creating cache:: /tmp/RtmpKckpGK/normSample.RData
simpleCacheShared("normSample", { rnorm(1e7, 0,1) })
## ::Object exists (in .GlobalEnv):: normSample
deleteCaches("normSample", force=TRUE)
## Deleting