R: On-demand Loading of Packages

autoload {base} | R Documentation

## On-demand Loading of Packages

### Description

`autoload` creates a promise-to-evaluate `autoloader` and stores it with name `name` in `.AutoloadEnv` environment. When R attempts to evaluate `name`, `autoloader` is run, the package is loaded and `name` is re-evaluated in the new package's environment. The result is that R behaves as if `package` was loaded but it does not occupy memory.

`.Autoloaded` contains the names of the packages for which autoloading has been promised.

### Usage

    autoload(name, package, reset = FALSE, ...)
    autoloader(name, package, ...)

    .AutoloadEnv
    .Autoloaded

### Arguments

`name` | string giving the name of an object.
`package` | string giving the name of a package containing the object.
`reset` | logical: for internal use by `autoloader`.
`...` | other arguments to `library`.

### Value

This function is invoked for its side-effect. It has no return value.

### See Also

`delayedAssign`, `library`

### Examples

    require(stats)
    autoload("interpSpline", "splines")
    search()
    ls("Autoloads")
    .Autoloaded

    x <- sort(stats::rnorm(12))
    y <- x^2
    is <- interpSpline(x, y)
    search() ## now has splines
    detach("package:splines")
    search()
    is2 <- interpSpline(x, y+x)
    search() ## and again
    detach("package:splines")

[Package base version 4.0.5 Index]