Double Colon and Triple Colon Operators

Share:

Description

Accessing exported and internal variables, i.e. R objects (including lazy loaded data sets) in a namespace.

Usage

1
2
pkg::name
pkg:::name

Arguments

pkg

package name: symbol or literal character string.

name

variable name: symbol or literal character string.

Details

For a package pkg, pkg::name returns the value of the exported variable name in namespace pkg, whereas pkg:::name returns the value of the internal variable name. The package namespace will be loaded if it was not loaded before the call, but the package will not be attached to the search path.

Specifying a variable or package that does not exist is an error.

Note that pkg::name does not access the objects in the environment package:pkg (which does not exist until the package's namespace is attached): the latter may contain objects not exported from the namespace. It can access datasets made available by lazy-loading.

Note

It is typically a design mistake to use ::: in your code since the corresponding object has probably been kept internal for a good reason. Consider contacting the package maintainer if you feel the need to access the object for anything but mere inspection.

See Also

get to access an object masked by another of the same name. loadNamespace, asNamespace for more about namespaces.

Examples

1
2
3
4
5
base::log
base::"+"

## Beware --  use ':::' at your own risk! (see "Details")
stats:::coef.default

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.