📜  R 编程中的环境

📅  最后修改于: 2022-05-13 01:55:47.067000             🧑  作者: Mango

R 编程中的环境

环境是在启动编程语言的解释器时触发的虚拟空间。简单地说,环境是所有对象、变量和函数的集合。或者,Environment 可以假设为一个顶级对象,其中包含与某些值相关联的名称/变量集。在本文中,让我们通过示例讨论在 R 编程中创建新环境、列出所有环境、从环境中删除变量、在环境和函数环境中搜索变量或函数。

为什么环境与列表不同?

  • 环境中的每个对象都有一个名称。
  • 该环境有一个父环境。
  • 环境遵循引用语义。

创建新环境

可以使用new.env()函数创建 R 编程环境。此外,可以使用$ 或 [[ ]]运算符访问变量。但是,每个变量都存储在不同的内存位置。有四种特殊环境: globalenv()、baseenv()、emptyenv() 和 environment()

例子:

R
# 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)


R
# 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()


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


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


输出:

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

列出所有环境

每个环境都有一个父环境,但有一个没有任何父环境的空环境。可以使用ls()函数和search()函数列出所有环境。 ls()函数还列出了特定环境中变量的所有绑定。

例子:

R

# 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()

输出:

[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" 

从环境中删除变量

使用rm()函数删除环境中的变量。它与从列表中删除条目不同,因为列表中的条目设置为 NULL 以被删除。但是,使用rm()函数,绑定会从环境中移除。

例子:

R

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

输出:

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

在环境中搜索变量或函数

可以在 R 编程中使用where()函数在所有存在的环境和包中搜索变量或函数。 where()函数存在于pryr包中。这个函数只接受两个参数,要搜索的对象的名称和开始搜索的环境。

例子:

R

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

输出: