base (version 3.4.0)

# ns-topenv: Top Level Environment

## Description

Finding the top level `environment` from an environment `envir` and its enclosing environments.

## Usage

```topenv(envir = parent.frame(),
matchThisEnv = getOption("topLevelEnvironment"))```

## Arguments

envir
environment.
matchThisEnv
return this environment, if it matches before any other criterion is satisfied. The default, the option topLevelEnvironment, is set by `sys.source`, which treats a specific environment as the top level environment. Supplying the argument as `NULL` means it will never match.

## Details

`topenv` returns the first top level `environment` found when searching `envir` and its enclosing environments. An environment is considered top level if it is the internal environment of a namespace, a package environment in the `search` path, or `.GlobalEnv` .

`environment`, notably `parent.env()` on “enclosing environments”; `loadNamespace` for more on namespaces.

## Examples

Run this code
``````topenv(.GlobalEnv)
topenv(new.env()) # also global env
topenv(environment(ls))# namespace:base
topenv(environment(lm))# namespace:stats

``````

Run the code above in your browser using DataCamp Workspace