R语言 环境

R语言 环境

环境是一个虚拟的空间,当一个编程语言的解释器启动时就会被触发。简单地说,环境是所有对象、变量和函数的集合。或者说,环境可以被认为是一个顶层对象,它包含了与一些数值相关的名称/变量集合。在这篇文章中,让我们讨论在R编程中创建一个新的环境,列出所有的环境,从环境中删除一个变量,在环境和函数环境中搜索一个变量或函数,并借助于例子。

为什么环境与列表不同

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

创建一个新的环境

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

语法: new.env(hash = TRUE)

参数:

hash: 表示逻辑值。如果为 “true”,环境使用一个哈希表。

要了解更多的可选参数,请在控制台使用以下命令: help(“new.env”)

例子

# R program to illustrate
# Environments in R
  
# Create new environment
newEnv <- new.env()
  
# Assigning variables
newEnvx <- 1
newEnvy <- "GFG"
newEnvz <- 1:10
  
# Print
print(newEnvz)

输出

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

列出所有环境

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

语法

ls()

search()

参数:
这些函数不需要参数

例子

# 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() 函数,绑定会从环境中删除。

语法: rm(…)

参数:

... 表示对象的列表

例子

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

参数:

name: 表示要寻找的对象

例子

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

输出

<environment: R_GlobalEnv>
<environment: base>

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程