drake_envir {drake} | R Documentation |
Get the environment where drake builds targets
Description
Call this function inside the commands in your plan
to get the environment where drake
builds targets.
Advanced users can use it to strategically remove targets from memory
while make()
is running.
Usage
drake_envir(which = c("targets", "dynamic", "subtargets", "imports"))
Arguments
which |
Character of length 1, which environment to select. See the details of this help file. |
Details
drake
manages in-memory targets in 4 environments:
one with sub-targets, one with whole dynamic targets, one with
static targets, and one with imported global objects and functions.
This last environment is usually the environment
from which you call make()
.
Select the appropriate environment for your
use case with the which
argument of drake_envir()
.
Value
The environment where drake
builds targets.
Keywords
drake_plan()
understands special keyword functions for your commands.
With the exception of target()
, each one is a proper function
with its own help file.
-
target()
: give the target more than just a command. Usingtarget()
, you can apply a transformation (examples:https://books.ropensci.org/drake/plans.html#large-plans
), # nolint supply a trigger (https://books.ropensci.org/drake/triggers.html
), # nolint or set any number of custom columns. -
file_in()
: declare an input file dependency. -
file_out()
: declare an output file to be produced when the target is built. -
knitr_in()
: declare aknitr
file dependency such as an R Markdown (*.Rmd
) or R LaTeX (*.Rnw
) file. -
ignore()
: forcedrake
to entirely ignore a piece of code: do not track it for changes and do not analyze it for dependencies. -
no_deps()
: telldrake
to not track the dependencies of a piece of code.drake
still tracks the code itself for changes. -
id_chr()
: Get the name of the current target. -
drake_envir()
: get the environment where drake builds targets. Intended for advanced custom memory management.
See Also
Examples
## Not run:
isolate_example("contain side effects", {
plan <- drake_plan(
large_data_1 = sample.int(1e4),
large_data_2 = sample.int(1e4),
subset = c(large_data_1[seq_len(10)], large_data_2[seq_len(10)]),
summary = {
print(ls(envir = parent.env(drake_envir())))
# We don't need the large_data_* targets in memory anymore.
rm(large_data_1, large_data_2, envir = drake_envir("targets"))
print(ls(envir = drake_envir("targets")))
mean(subset)
}
)
make(plan, cache = storr::storr_environment(), session_info = FALSE)
})
## End(Not run)