Rscript_call: Call a function in a new R session via 'Rscript()'

View source: R/command.R

Rscript_callR Documentation

Call a function in a new R session via Rscript()

Description

Save the argument values of a function in a temporary RDS file, open a new R session via Rscript(), read the argument values, call the function, and read the returned value back to the current R session.

Usage

Rscript_call(
  fun,
  args = list(),
  options = NULL,
  ...,
  wait = TRUE,
  fail = sprintf("Failed to run '%s' in a new R session", deparse(substitute(fun))[1])
)

Arguments

fun

A function, or a character string that can be parsed and evaluated to a function.

args

A list of argument values.

options

A character vector of options to passed to Rscript(), e.g., "--vanilla".

..., wait

Arguments to be passed to system2().

fail

The desired error message when an error occurred in calling the function. If the actual error message during running the function is available, it will be appended to this message.

Value

If wait = TRUE, the returned value of the function in the new R session. If wait = FALSE, three file paths will be returned: the first one stores fun and args (as a list), the second one is supposed to store the returned value of the function, and the third one stores the possible error message.

Examples

factorial(10)
# should return the same value
xfun::Rscript_call("factorial", list(10))

# the first argument can be either a character string or a function
xfun::Rscript_call(factorial, list(10))

# Run Rscript starting a vanilla R session
xfun::Rscript_call(factorial, list(10), options = c("--vanilla"))

xfun documentation built on June 22, 2024, 10:41 a.m.