source {base} | R Documentation |
source
causes R to accept its input from the named file or URL
(the name must be quoted) or connection. Input is read and
parse
d by from that file until the end of the file is
reached, then the parsed expressions are evaluated sequentially in the
chosen environment.
source(file, local = FALSE, echo = verbose, print.eval = echo, verbose = getOption("verbose"), prompt.echo = getOption("prompt"), max.deparse.length = 150, chdir = FALSE, encoding = getOption("encoding"))
file |
a connection or a character string giving the pathname of the file or URL to read from. |
local |
if local is FALSE , the statements scanned
are evaluated in the user's workspace (the global environment),
otherwise in the environment calling source . |
echo |
logical; if TRUE , each expression is printed
after parsing, before evaluation. |
print.eval |
logical; if TRUE , the result of
eval(i) is printed for each expression i ; defaults
to echo . |
verbose |
if TRUE , more diagnostics (than just
echo = TRUE ) are printed during parsing and evaluation of
input, including extra info for each expression. |
prompt.echo |
character; gives the prompt to be used if
echo = TRUE . |
max.deparse.length |
integer; is used only if echo is
TRUE and gives the maximal length of the “echo” of a
single expression. |
chdir |
logical; if TRUE and file is a pathname,
the R working directory is temporarily changed to the directory
containing file for evaluating. |
encoding |
character string. The encoding to be assumed when
file is a character string: see file . A
possible value is "unknown" : see the Details. |
All versions of R accept input from a connection with end of line marked by LF (as used on Unix), CRLF (as used on DOS/Windows) or CR (as used on classic MacOS). The final line can be incomplete, that is missing the final EOL marker.
If options
("keep.source") is true (the default), the
source of functions is kept so they can be listed exactly as input.
This imposes a limit of 128K bytes on the function size and a nesting
limit of 265. Use option(keep.source = FALSE)
when these
limits might take effect: if exceeded they generate an error.
This paragraph applies if file
is a filename (rather than a
connection). If encoding = "unknown"
, an attempt is made to
guess the encoding. The result of localeToCharset()
is
used a guide. If encoding
has two or more elements, they are
tried in turn until the file/URL can be read without error in the
trial encoding.
Unlike input from a console, lines in the file or on a connection can contain an unlimited number of characters. However, there is a limit of 8192 bytes on the size of character strings.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
demo
which uses source
;
eval
, parse
and scan
;
options("keep.source")
.
## If you want to source() a bunch of files, something like ## the following may be useful: sourceDir <- function(path, trace = TRUE, ...) { for (nm in list.files(path, pattern = "\\.[RrSsQq]$")) { if(trace) cat(nm,":") source(file.path(path, nm), ...) if(trace) cat("\n") } }