Environments in R Programming

The environment is a virtual space that is triggered when an interpreter of a programming language is launched. Simply, the environment is a collection of all the objects, variables, and functions. Or, Environment can be assumed as a top-level object that contains the set of names/variables associated with some values. In this article, let us discuss creating a new environment in R programming, list all environments, removing a variable from the environment, searching for a variable or function among environments and function environments with the help of examples.

Why the Environment Differ from the List?

  • Every object in an environment has a name.
  • The environment has a parent environment.
  • Environments follow reference semantics.

Create a New Environment

An environment in R programming can be created using new.env() function. Further, the variables can be accessed using $ or [[ ]] operator. But, each variable is stored in different memory locations. There are four special environments: globalenv(), baseenv(), emptyenv() and environment()

Syntax: new.env(hash = TRUE)

Parameters: 
hash: indicates logical value. If TRUE, environments uses a hash table

To know about more optional parameters, use below command in console: help(“new.env”) 



Example:

R

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to illustrate
# Environments in R
  
# Create new environment
newEnv <- new.env()
  
# Assigning variables
newEnv$x <- 1
newEnv$y <- "GFG"
newEnv$z <- 1:10
  
# Print
print(newEnv$z)

chevron_right


Output: 

 [1]  1  2  3  4  5  6  7  8  9 10

List all Environments

Every environment has a parent environment but there is an empty environment that does not have any parent environment. All the environments can be listed using ls() function and search() function. ls() function also list out all the bindings of the variables in a particular environment.  

Syntax: 

ls() 
search() 

Parameters:
These functions need no argument

Example: 



R

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to illustrate
# Environments in R
  
# Prints all the bindings and environments 
# attached to Global Environment
ls()
  
# Prints bindings of newEnv
ls(newEnv)
  
# Lists all the environments of the parent environment
search()

chevron_right


Output: 

[1] "al"     "e"      "e1"     "f"      "newEnv" "pts"    "x"      "y"     
[9] "z"

[1] "x" "y" "z"

[1] ".GlobalEnv"        "package:stats"     "package:graphics" 
[4] "package:grDevices" "package:utils"     "package:datasets" 
[7] "package:methods"   "Autoloads"         "package:base" 

Removing a Variable From an Environment

A variable in an environment is deleted using rm() function. It is different from deleting entries from lists as entries in lists are set as NULL to be deleted. But, using rm() function, bindings are removed from the environment. 

Syntax: rm(…) 

Parameters: 
…: indicates list of objects 

Example: 

R

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to illustrate
# Environments in R
  
# Remove newEnv
rm(newEnv)
  
# List
ls()

chevron_right


Output: 

[1] "al"  "e"   "e1"  "f"   "pts" "x"   "y"   "z"

Search a Variable or Function Among Environments

A variable or a function can be searched in R programming by using where() function among all the environments and packages present. where() function is present in pryr package. This function takes only two arguments, the name of the object to search for and the environment from where to start the search.

Syntax: where(name) 

Parameters: 
name: indicates object to look for 

Example: 

R

filter_none

edit
close

play_arrow

link
brightness_4
code

# R program to illustrate
# Environments in R
  
# Install pryr package
install.packages("pryr")
  
# Load the package
library(pryr)
  
# Search
where("x")
  
where("mode")

chevron_right


Output: 

<environment: R_GlobalEnv>
<environment: base>



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.