R: Parse and Evaluate Expressions from a File

sys.source {base} | R Documentation

## Parse and Evaluate Expressions from a File

### 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 value `NULL` corresponds to evaluation in the base environment. This is probably not what you want; you should typically supply an explicit `envir` argument.
`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, see `options(keep.source = *)` for more details.
`keep.parse.data` | logical. If `TRUE` and `keep.source` is also `TRUE`, functions keep parse data with their source, see `options(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 = FALSE` can already save a lot. In order for the code being evaluated to use the correct environment (for example, in global assignments), source code in packages should call `topenv()`, 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`, and `library` which 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.0.5 Index]