| 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 |
chdir |
logical; if |
keep.source |
logical. If |
keep.parse.data |
logical. If |
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.
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(), 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 loadNamespace which
is called from library(.) 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")