Parse and Evaluate Expressions from a File (original) (raw)

sys.source {base} R Documentation

Description

Parses expressions in the given file, and then successively evaluates them in the specified environment.

Usage

sys.source(file, envir = baseenv(), chdir = FALSE,
           keep.source = getOption("keep.source.pkgs"),
           keep.parse.data = getOption("keep.parse.data.pkgs"),
           toplevel.env = as.environment(envir))

Arguments

file a character string naming the file to be read from.
envir an R object specifying the environment in which the expressions are to be evaluated. May also be a list or an integer. The default baseenv() corresponds to evaluation in the base environment. This is probably not what you want; you should typically supply an explicit envir argument, see the ‘Note’.
chdir logical; if TRUE, the R working directory is changed to the directory containing file for evaluating.
keep.source logical. If TRUE, functions keep their source including comments, seeoptions(keep.source = *) for more details.
keep.parse.data logical. If TRUE and keep.source is also TRUE, functions keep parse data with their source, seeoptions(keep.parse.data = *) for more details.
toplevel.env an R environment to be used as top level while evaluating the expressions. This argument is useful for frameworks running package tests; the default should be used in other cases.

Details

For large files, keep.source = FALSE may save quite a bit of memory. Disabling only parse data via keep.parse.data = FALSEcan already save a lot.

Note on envir

In order for the code being evaluated to use the correct environment (for example, in global assignments), source code in packages should call [topenv](../../base/help/topenv.html)(), which will return the namespace, if any, the environment set up by sys.source, or the global environment if a saved image is being used.

See Also

[source](../../base/help/source.html), and [loadNamespace](../../base/help/loadNamespace.html) which is called from [library](../../base/help/library.html)(.) and uses sys.source(.).

Examples

## a simple way to put some objects in an environment
## high on the search path
tmp <- tempfile()
writeLines("aaa <- pi", tmp)
env <- attach(NULL, name = "myenv")
sys.source(tmp, env)
unlink(tmp)
search()
aaa
detach("myenv")

[Package _base_ version 4.6.0 Index]