R: Read R Code from a File or a Connection

source {base} | R Documentation

## Read R Code from a File or a Connection

### Description

`source` causes R to accept its input from the named file (the name must be quoted). Input is read from that file until the end of the file is reached. `parse` is used to scan the expressions in, they are then evaluated sequentially in the chosen environment.

### Usage

    source(file, local = FALSE, echo = verbose, print.eval = echo,
           verbose = getOption("verbose"),  prompt.echo = getOption("prompt"),
           max.deparse.length = 150, chdir = FALSE)

### Arguments

`file` | a connection or a character string giving the name 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`, the R working directory is changed to the directory containing `file` for evaluating.

### 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 chars 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.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

### See Also

`demo` which uses `source`; `eval`, `parse` and `scan`; `options("keep.source")`.

[Package Contents]