# R: Loading and Unloading Name Spaces

ns-load {base} | R Documentation

## Loading and Unloading Name Spaces

### Description

Functions to load and unload namespaces.

### Usage

    attachNamespace(ns, pos = 2, dataPath = NULL)
    loadNamespace(package, lib.loc = NULL,
                  keep.source = getOption("keep.source.pkgs"),
                  partial = FALSE, declarativeOnly = FALSE)
    loadedNamespaces()
    unloadNamespace(ns)

### Arguments

`ns` | string or namespace object.
`pos` | integer specifying position to attach.
`dataPath` | path to directory containing a database of datasets to be lazy-loaded into the attached environment.
`package` | string naming the package/name space to load.
`lib.loc` | character vector specifying library search path.
`keep.source` | logical specifying whether to retain source. This applies only to the specified name space, and not to other name spaces which might be loaded to satisfy imports. For more details see this argument to `library`.
`partial` | logical; if true, stop just after loading code.
`declarativeOnly` | logical; disables `.Import`, etc, if true.

### Details

The functions `loadNamespace` and `attachNamespace` are usually called implicitly when `library` is used to load a name space and any imports needed. However it may be useful to call these functions directly at times.

`loadNamespace` loads the specified name space and registers it in an internal data base. A request to load a name space that is already loaded has no effect. The arguments have the same meaning as the corresponding arguments to `library`, whose help page explains the details of how a particular installed package comes to be chosen. After loading, `loadNamespace` looks for a hook function named `.onLoad` as an internal variable in the name space (it should not be exported). This function is called with the same arguments as `.First.lib`. Partial loading is used to support installation with the --save and --lazy options.

`loadNamespace` does not attach the name space it loads to the search path. `attachNamespace` can be used to attach a frame containing the exported values of a name space to the search path. The hook function `.onAttach` is run after the name space exports are attached.

`loadedNamespaces` returns a character vector of the names of the loaded name spaces.

`unloadNamespace` can be used to force a name space to be unloaded. An error is signaled if the name space is imported by other loaded name spaces. If defined, a hook function `.onUnload` is run before removing the name space from the internal registry. `unloadNamespace` will first `detach` a package of the same name if one is on the path, thereby running a `.Last.lib` function in the package if one is exported.

### Author(s)

Luke Tierney

[Package base version 2.6.0 Index]