getPackageName
The Name associated with a Given Package
The functions below produce the package associated with a particular environment or position on the search list, or of the package containing a particular function. They are primarily used to support computations that need to differentiate objects on multiple packages.
- Keywords
- programming
Usage
getPackageName(where, create = TRUE)
setPackageName(pkg, env)packageSlot(object)
packageSlot(object) <- value
Arguments
- where
- the environment or position on the search list associated with the desired package.
- object
- object providing a character string name, plus the package in which this object is to be found.
- value
- the name of the package.
- create
- flag, should a package name be created if none can be
inferred? If
TRUE
and no non-empty package name is found, the current date and time are used as a package name, and a warning is issued. The created name is stored in the environment if that environment is not locked. - pkg, env
- make the string in
pkg
the internal package name for all computations that set class and method definitions in environmentenv
.
Details
Package names are normally installed during loading of the package,
by the INSTALL script or by the library
function. (Currently, the name is stored as the object
.packageName
but don't trust this for the future.)
Value
getPackageName
returns the character-string name of the package (without the extraneous"package:"
found in the search list).packageSlot
returns or sets the package name slot (currently an attribute, not a formal slot, but this may change someday).setPackageName
can be used to establish a package name in an environment that would otherwise not have one. This allows you to create classes and/or methods in an arbitrary environment, but it is usually preferable to create packages by the standard Rprogramming tools (package.skeleton
, etc.)
See Also
Examples
library(methods)
## all the following usually return "base"
getPackageName(length(search()))
getPackageName(baseenv())
getPackageName(asNamespace("base"))
getPackageName("package:base")