Ignore sections of commands and imported functions.

ignore(x = NULL)



Code to ignore.


The argument.


In user-defined functions and drake_plan() commands, you can wrap code chunks in ignore() to

  1. Tell drake to not search for dependencies (targets etc. mentioned in the code) and

  2. Ignore changes to the code so downstream targets remain up to date. To enforce (1) without (2), use no_deps().


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. Using target(), 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 a knitr file dependency such as an R Markdown (*.Rmd) or R LaTeX (*.Rnw) file.

  • ignore(): force drake to entirely ignore a piece of code: do not track it for changes and do not analyze it for dependencies.

  • no_deps(): tell drake 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


if (FALSE) { isolate_example("Contain side effects", { # Normally, `drake` reacts to changes in dependencies. x <- 4 make(plan = drake_plan(y = sqrt(x))) x <- 5 make(plan = drake_plan(y = sqrt(x))) make(plan = drake_plan(y = sqrt(4) + x)) # But not with ignore(). make(plan = drake_plan(y = sqrt(4) + ignore(x))) # Builds y. x <- 6 make(plan = drake_plan(y = sqrt(4) + ignore(x))) # Skips y. make(plan = drake_plan(y = sqrt(4) + ignore(x + 1))) # Skips y. # ignore() works with functions and multiline code chunks. f <- function(x) { ignore({ x <- x + 1 x <- x + 2 }) x # Not ignored. } make(plan = drake_plan(y = f(2))) readd(x) # Changes the content of the ignore() block: f <- function(x) { ignore({ x <- x + 1 }) x # Not ignored. } make(plan = drake_plan(x = f(2))) readd(x) }) }