R: Evaluate an expression in another R session, in the...

r_bg {callr} | R Documentation

## Evaluate an expression in another R session, in the background

### Description

Starts evaluating an R function call in a background R process, and returns immediately.

### Usage

    r_bg(func, args = list(), libpath = .libPaths(),
      repos = c(getOption("repos"), c(CRAN = "https://cloud.r-project.org")),
      stdout = "|", stderr = "|", error = c("error", "stack", "debugger"),
      cmdargs = c("--no-site-file", "--no-environ", "--slave", "--no-save",
      "--no-restore"), system_profile = FALSE, user_profile = FALSE,
      env = rcmd_safe_env())

### Arguments

`func` | Function object to call in the new R process. The function should be self-contained and only refer to other functions and use variables explicitly from other packages using the `::` notation. The environment of the function is set to `.GlobalEnv` before passing it to the child process. Because of this, it is good practice to create an anonymous function and pass that to `callr`, instead of passing a function object from a (base or other) package. In particular
    r(.libPaths)
does not work, because `.libPaths` is defined in a special environment, but
    r(function() .libPaths())
works just fine.
`args` | Arguments to pass to the function. Must be a list.
`libpath` | The library path.
`repos` | The repos option. If `NULL`, then no repos option is set. This options is only used if `user_profile` or `system_profile` is set `FALSE`, as it is set using the system or the user profile.
`stdout` | The name of the file the standard output of the child R process will be written to. If the child process runs with the `--slave` option (the default), then the commands are not echoed and will not be shown in the standard output. Also note that you need to call `print()` explicitly to show the output of the command(s).
`stderr` | The name of the file the standard error of the child R process will be written to. In particular `message()` sends output to the standard error. If nothing was sent to the standard error, then this file will be empty. This can be the same file as `stderr`, although there is no guarantee that the lines will be in the correct chronological order.
`error` | What to do if the remote process throws an error. See details below.
`cmdargs` | Command line arguments to pass to the R process. Note that `c("-f", rscript)` is appended to this, `rscript` is the name of the script file to run. This contains a call to the supplied function and some error handling code.
`system_profile` | Whether to use the system profile file.
`user_profile` | Whether to use the user's profile file.
`env` | Environment variables to set for the child process.

### Value

An `r_process` object, which inherits from process, so all `process` methods can be called on it, and in addition it also has a `get_result()` method to collect the result.

### Examples

    ## Not run:
    rx <- r_bg(function() 1 + 2)

    # wait until it is done
    rx$wait()
    rx$is_alive()
    rx$get_result()

    ## End(Not run)

[Package callr version 2.0.2 Index]