View source: R/drake_plan_helpers.R
trigger | R Documentation |
Use this function inside a target's command
in your drake_plan()
or the trigger
argument to
make()
or drake_config()
.
For details, see the chapter on triggers
in the user manual:
https://books.ropensci.org/drake/triggers.html
trigger(
command = TRUE,
depend = TRUE,
file = TRUE,
seed = TRUE,
format = TRUE,
condition = FALSE,
change = NULL,
mode = c("whitelist", "blacklist", "condition")
)
command |
Logical, whether to rebuild the target if the
|
depend |
Logical, whether to rebuild if a non-file dependency changes. |
file |
Logical, whether to rebuild the target
if a |
seed |
Logical, whether to rebuild the target
if the seed changes. Only makes a difference if you set
a custom |
format |
Logical, whether to rebuild the target if the
choice of specialized data format changes: for example,
if you use |
condition |
R code (expression or language object)
that returns a logical. The target will rebuild
if the code evaluates to |
change |
R code (expression or language object) that returns any value. The target will rebuild if that value is different from last time or not already cached. |
mode |
A character scalar equal to
|
A target always builds if it has not been built before. Triggers allow you to customize the conditions under which a pre-existing target rebuilds. By default, the target will rebuild if and only if:
Any of command
, depend
, or file
is TRUE
, or
condition
evaluates to TRUE
, or
change
evaluates to a value different from last time.
The above steps correspond to the "whitelist" decision rule.
You can select other decision rules with the mode
argument
described in this help file.
On another note, there may be a slight efficiency loss
if you set complex triggers
for change
and/or condition
because
drake
needs to load any required dependencies
into memory before evaluating these triggers.
A list of trigger specification details that
drake
processes internally when it comes time to decide
whether to build the target.
drake_plan()
, make()
# A trigger is just a set of decision rules
# to decide whether to build a target.
trigger()
# This trigger will build a target on Tuesdays
# and when the value of an online dataset changes.
trigger(condition = today() == "Tuesday", change = get_online_dataset())
## Not run:
isolate_example("Quarantine side effects.", {
if (suppressWarnings(require("knitr"))) {
load_mtcars_example() # Get the code with drake_example("mtcars").
# You can use a global trigger argument:
# for example, to always run everything.
make(my_plan, trigger = trigger(condition = TRUE))
make(my_plan, trigger = trigger(condition = TRUE))
# You can also define specific triggers for each target.
plan <- drake_plan(
x = sample.int(15),
y = target(
command = x + 1,
trigger = trigger(depend = FALSE)
)
)
# Now, when x changes, y will not.
make(plan)
make(plan)
plan$command[1] <- "sample.int(16)" # change x
make(plan)
}
})
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.