get
Return the Value of a Named Object
Description
Search by name for an object (get
) or zero or more objects (mget
).
Usage
get(x, pos = -1, envir = as.environment(pos), mode = "any", inherits = TRUE) mget(x, envir = as.environment(-1), mode = "any", ifnotfound, inherits = FALSE) dynGet(x, ifnotfound = , minframe = 1L, inherits = FALSE)
Arguments
x | For |
pos, envir | where to look for the object (see ‘Details’); if omitted search as if the name of the object appeared unquoted in an expression. |
mode | the mode or type of object sought: see the ‘Details’ section. |
inherits | should the enclosing frames of the environment be searched? |
ifnotfound | For |
minframe | integer specifying the minimal frame number to look into. |
Details
The pos
argument can specify the environment in which to look for the object in any of several ways: as a positive integer (the position in the search
list); as the character string name of an element in the search list; or as an environment
(including using sys.frame
to access the currently active function calls). The default of -1
indicates the current environment of the call to get
. The envir
argument is an alternative way to specify an environment.
These functions look to see if each of the name(s) x
have a value bound to it in the specified environment. If inherits
is TRUE
and a value is not found for x
in the specified environment, the enclosing frames of the environment are searched until the name x
is encountered. See environment
and the ‘R Language Definition’ manual for details about the structure of environments and their enclosures.
If mode
is specified then only objects of that type are sought. mode
here is a mixture of the meanings of typeof
and mode
: "function"
covers primitive functions and operators, "numeric"
, "integer"
and "double"
all refer to any numeric type, "symbol"
and "name"
are equivalent but "language"
must be used (and not "call"
or "("
).
For mget
, the values of mode
and ifnotfound
can be either the same length as x
or of length 1. The argument ifnotfound
must be a list containing either the value to use if the requested item is not found or a function of one argument which will be called if the item is not found, with argument the name of the item being requested.
dynGet()
is somewhat experimental and to be used inside another function. It looks for an object in the callers, i.e., the sys.frame()
s of the function. Use with caution.
Value
For get
, the object found. If no object is found an error results.
For mget
, a named list of objects (found or specified via ifnotfound
).
Note
The reverse (or “inverse”) of a <- get(nam)
is assign(nam, a)
, assigning a
to name nam
.
inherits = TRUE
is the default for get
in R but not for S where it had a different meaning.
References
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
See Also
exists
for checking whether an object exists; get0
for an efficient way of both checking existence and getting an object.
assign
, the inverse of get()
, see above.
Use getAnywhere
for searching for an object anywhere, including in other namespaces, and getFromNamespace
to find an object in a specific namespace.
Examples
get("%o%") ## test mget e1 <- new.env() mget(letters, e1, ifnotfound = as.list(LETTERS))
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.