R: Is an Object Defined?

exists {base} | R Documentation

## Is an Object Defined?

### Description

Search for an R object of the given name on the search path.

### Usage

    exists(x, where = -1, envir = parent.frame(),
           frame = NULL, mode = "any", inherits = TRUE)

### Arguments

`x` | a variable name (given as a character string).
`where` | where to look for the object (see the details section); if omitted, the function will search, as if the name of the object appeared in unquoted in an expression.
`envir` | an alternative way to specify an environment to look in, but it's usually simpler to just use the `where` argument.
`frame` | a frame in the calling list. Equivalent to giving `where` as `sys.frame(frame)`.
`mode` | the mode of object sought.
`inherits` | should the enclosing frames of the environment be inspected.

### Details

The `where` argument can specify the environment in which to look for the object in any of several ways: as an 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 `envir` argument is an alternative way to specify an environment, but is primarily there for back compatibility.

This function looks to see if the name `x` has a value bound to it. If `inherits` is `TRUE` and a value is not found for `x`, then the parent frames of the environment are searched until the name `x` is encountered. Warning: This is the default behaviour for R but not for S.

If `mode` is specified then only objects of that mode are sought. The function returns `TRUE` if the variable is encountered and `FALSE` if not.

The `mode` includes collections such as `"numeric"` and `"function"`: any member of the collection will suffice.

### Value

Logical, true if and only if the object is found on the search path.

### See Also

`get`.

### Examples

    ##  Define a substitute function if necessary:
    if(!exists("some.fun", mode="function"))
     some.fun <- function(x) { cat("some.fun(x)\n"); x }
    search()
    exists("ls", 2) # true even though ls is in pos=3
    exists("ls", 2, inherits=FALSE) # false

[Package Contents]