Get parent environments

  • env_parent() returns the parent environment of env if called with n = 1, the grandparent with n = 2, etc.

  • env_tail() searches through the parents and returns the one which has empty_env() as parent.

  • env_parents() returns the list of all parents, including the empty environment.

See the section on inheritance in env()'s documentation.

env_parent(env = caller_env(), n = 1)

env_tail(env = caller_env(), sentinel = empty_env())

env_parents(env = caller_env())


An environment or an object bundling an environment, e.g. a formula, quosure or closure.


The number of generations to go up.


The environment signalling the end of the linear search. env_tail() returns the environment which has sentinel as parent.


An environment for env_parent() and env_tail(), a list of environments for env_parents().

  • env_parent
  • env_tail
  • env_parents
library(rlang) # NOT RUN { # 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()) # }
Documentation reproduced from package rlang, version 0.2.0, License: GPL-3

Community examples

Looks like there are no examples yet.