| env_parent {rlang} | R Documentation |
Get parent environments
Description
-
env_parent()returns the parent environment ofenvif called withn = 1, the grandparent withn = 2, etc. -
env_tail()searches through the parents and returns the one which hasempty_env()as parent. -
env_parents()returns the list of all parents, including the empty environment. This list is named usingenv_name().
See the section on inheritance in env()'s documentation.
Usage
env_parent(env = caller_env(), n = 1)
env_tail(env = caller_env(), last = global_env())
env_parents(env = caller_env(), last = global_env())
Arguments
env |
An environment. |
n |
The number of generations to go up. |
last |
The environment at which to stop. Defaults to the global environment. The empty environment is always a stopping condition so it is safe to leave the default even when taking the tail or the parents of an environment on the search path.
|
Value
An environment for env_parent() and env_tail(), a list
of environments for env_parents().
Examples
# Get the parent environment with env_parent():
env_parent(global_env())
# Or the tail environment with env_tail():
env_tail(global_env())
# By default, env_parent() returns the parent environment of the
# current evaluation frame. If called at top-level (the global
# frame), the following two expressions are equivalent:
env_parent()
env_parent(base_env())
# This default is more handy when called within a function. In this
# case, the enclosure environment of the function is returned
# (since it is the parent of the evaluation frame):
enclos_env <- env()
fn <- set_env(function() env_parent(), enclos_env)
identical(enclos_env, fn())