Learn R Programming

wither (version 0.1.0)

with_here: Temporarily Change Project Root

Description

Temporarily change the here() root

Usage

with_here(new_here, expr, chdir = FALSE, verbose = FALSE)

local_here( new_here, chdir = FALSE, verbose = FALSE, .local_envir = parent.frame() )

Value

with_here() returns the result of the expression. local_here() returns the original value of here(), before the change.

Arguments

new_here

new temporary here root directory

expr

expression to evaluate

chdir

also temporarily change working directory

verbose

show here's messages on setting new root

.local_envir

the environment to use for scoping, see withr::local_dir()

Author

Torbjørn Lindahl

Details

Changes here::here() to temporarily point to a new directory. Automatically changes back to the original value when finished.

The with_* and local_* flavours of this functionality mimics that which is typically used in the withr package.

Examples

Run this code
library(here)
library(withr)

d <- local_tempdir()

cat("here() is initially:", here(), "\n")

# temporarily do things uner a different here() root:
with_here(d, cat("but here() is now:", here(), "\n"))

# check that everything is shifted back
cat("here() is now again:", here(), "\n")

local({

  d <- local_tempdir()

  cat("here was initially: ", here(), "\n")

  local_here(d)

  cat("after local_here(), here() is: ",here(),"\n")
  stopifnot(normalizePath(d) == normalizePath(here()))

  # do something that requires here() be elsewhere

})

cat("outside the block, here() is again:", here(), "\n")

Run the code above in your browser using DataLab