When a project is created with make() or drake_config(), the project's pseudo-random number generator seed is cached. Then, unless the cache is destroyed, the seeds of all the targets will deterministically depend on this one central seed. That way, reproducibility is protected, even under randomness.

read_drake_seed(path = getwd(), search = TRUE, cache = NULL,
  verbose = drake::default_verbose())

Arguments

path

Root directory of the drake project, or if search is TRUE, either the project root or a subdirectory of the project. Ignored if a cache is supplied.

search

logical. If TRUE, search parent directories to find the nearest drake cache. Otherwise, look in the current working directory only. Ignored if a cache is supplied.

cache

drake cache. See new_cache(). If supplied, path and search are ignored.

verbose

logical or numeric, control printing to the console. Use pkgconfig to set the default value of verbose for your R session: for example, pkgconfig::set_config("drake::verbose" = 2).

0 or FALSE:

print nothing.

1 or TRUE:

print only targets to build.

2:

in addition, print checks and cache info.

3:

in addition, print any potentially missing items.

4:

in addition, print imports. Full verbosity.

Value

An integer vector.

See also

read_drake_config()

Examples

cache <- storr::storr_environment() # Just for the examples. my_plan <- drake_plan( target1 = sqrt(1234), target2 = rnorm(n = 1, mean = target1) ) tmp <- runif(1) # Needed to get a .Random.seed, but not for drake. digest::digest(.Random.seed) # Fingerprint of the current R session's seed.
#> [1] "5b720f218bf72fb5ac8f351100af5c60"
make(my_plan, cache = cache) # Run the project, build the targets.
#> target target1
#> target target2
digest::digest(.Random.seed) # Your session's seed did not change.
#> [1] "5b720f218bf72fb5ac8f351100af5c60"
# Drake uses a hard-coded seed if you do not supply one. read_drake_seed(cache = cache)
#> [1] 0
readd(target2, cache = cache) # Randomly-generated target data.
#> [1] 33.8988
clean(target2, cache = cache) # Oops, I removed the data! tmp <- runif(1) # Maybe the R session's seed also changed. make(my_plan, cache = cache) # Rebuild target2.
#> Unloading targets from environment: #> target1 #> target2
#> target target2
# Same as before: read_drake_seed(cache = cache)
#> [1] 0
readd(target2, cache = cache)
#> [1] 33.8988
# You can also supply a seed. # If your project already exists, it must agree with the project's # preexisting seed (default: 0) clean(target2, cache = cache) make(my_plan, cache = cache, seed = 0)
#> Unloading targets from environment: #> target1 #> target2
#> target target2
read_drake_seed(cache = cache)
#> [1] 0
readd(target2, cache = cache)
#> [1] 33.8988
# If you want to supply a different seed than 0, # you need to destroy the cache and start over first. clean(destroy = TRUE, cache = cache) cache <- storr::storr_environment() # Just for the examples. make(my_plan, cache = cache, seed = 1234)
#> Unloading targets from environment: #> target1 #> target2
#> target target1
#> target target2
read_drake_seed(cache = cache)
#> [1] 1234
readd(target2, cache = cache)
#> [1] 34.52217