Startup {base} | R Documentation

## Initialization at Start of an R Session

### Description

In R, the startup mechanism is as follows. If a file ``.Renviron`', or a file pointed to by `R\_ENVIRON` or ``~/.Renviron`', exists, it is processed to set environmental variables. (This is suppressed by the flag `--no-environ`.) See Details for how the file is read.

Then R searches for the site-wide startup profile unless the command line option `--no-site-file` was given. The name of this file is taken from the value of the `R\_PROFILE` environment variable. If this variable is unset, the default is ``$R_HOME/etc/Rprofile`'. This code is loaded into package `base`.

Then, unless `--no-init-file` was given, R searches for a file called ``.Rprofile`' in the current directory or in the user's home directory (in that order) and sources it into the user workspace.

It then loads a saved image of the user workspace from ``.RData`' if there is one (unless `--no-restore-data` was specified, or `--no-restore`).

Finally, if a function `.First` exists, it is executed as `.First()`.

The functions `.First` and `.Last` can be defined in the appropriate startup profiles or reside in ``.RData`'.

The commands history is read from the file specified by the environment variable `R_HISTFILE` (default `.Rhistory`) unless `--no-restore-history` was specified (or `--no-restore`).

The command-line flag `--vanilla` implies `--no-init-file`, `--no-restore` and `--no-environ`.

### Usage

    .First <- function() { ...... }

    .Rprofile <startup file>

### Details

Lines in a ``.Renviron`' file should be either comment lines starting with `#`, or lines of the form `name=value`. The latter sets the environmental variable `name` to `value`, overriding an existing value. If `value` is of the form `${foo-bar}`, the value is that of the environmental variable `foo` if that exists and is set to a non-empty value, otherwise `bar`. This construction can be nested, so `bar` can be of the same form (as in `${foo-${bar-blah}}`).

Leading and trailing white space in `value` are stripped. No other interpretation of `value` is performed. In particular, if it is enclosed in quotes, the quotes form part of the value.

### Note

Prior to R version 1.2.1, ``.Rprofile`' was sourced after ``.RData`' was loaded, although the documented order was as here.

The format for ``.Renviron`' files was changed in version 1.2.0. Older files are quite likely to work but may generate warnings on startup if they contained unnecessary `export` statements.

### See Also

`.Last` for final actions before termination.