Execute code in temporarily altered environment

All functions prefixed by with_ work as follows. First, a particular aspect of the global environment is modified (see below for a list). Then, custom code (passed via the code argument) is executed. Upon completion or error, the global environment is restored to the previous state.

Arguments pattern

lll{ new [various] Values for setting code [any] Code to execute in the temporary environment ... Further arguments }

Usage pattern

with_...(new, code, ...)

withr functions

Creating new "with" functions

All with_ functions are created by a helper function, with_. This functions accepts two arguments: a setter function and an optional resetter function. The setter function is expected to change the global state and return an "undo instruction". This undo instruction is then passed to the resetter function, which changes back the global state. In many cases, the setter function can be used naturally as resetter.

  • withr
  • withr-package
with_dir(tempdir(), getwd())

with_envvar(c("HADLEY" = 2), Sys.getenv("HADLEY"))

with_envvar(c("A" = 1),
  with_envvar(c("A" = 2), action = "suffix", Sys.getenv("A"))
Documentation reproduced from package withr, version 1.0.1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.