R语言学习之R的环境系统

1.1 文件系统

每个文件都储存在一个文件夹中,每个文件夹又储存在另一个文件夹中,这就形成了一个分层的文件系统。

1.2 环境的含义与规则

  1. 储存对象的地方。
  2. 环境类似于列表,作用接近于计算机上的文件夹。
  3. 每一个环境都与一个父环境相连接,后者是高一层级的环境。
  4. 父子环境构成了一个分层的环境系统,这个系统的结构是层级系统结构

1.3 R的环境系统

R储存对象时所使用的类似于文件系统的层级结构系统称为R的环境系统。
我们可以通过parenvs函数查看R的环境系统。

#之前未下载pryr包需要下载 
library(pryr) 
parenvs(all = TRUE) #显示当前会话包含的环境列表

运行结果:

label<chr>    name<chr>
<environment: R_GlobalEnv>	""		
<environment: package:pryr>	"package:pryr"		
<environment: 0x0000016c46ec0588>	"tools:rstudio"		
<environment: package:stats>	"package:stats"		
<environment: package:graphics>	"package:graphics"		
<environment: package:grDevices>	"package:grDevices"		
<environment: package:utils>	"package:utils"		
<environment: package:datasets>	"package:datasets"		
<environment: package:methods>	"package:methods"		
<environment: 0x0000016c44dc1178>	"Autoloads"		
<environment: base>	""		
<environment: R_EmptyEnv>	""		
12 rows
  • 结果解释:
  1. 这个列表环境可以想象成是一个树形结构。
  2. 层次最低的环境叫做R_GlobalEnv(全局环境),它储存在名为package:pryr的环境中,而package:pryr的父环境名叫0x0000016c46ec0588,以此类推。
  3. 在这个环境列表中,层次最高的环境是== R_EmptyEnv(空环境),它是R中唯一一个没有父环境的环境==。
  4. R的环境系统并不储存在文件系统中,而是储存在RAM内存中。
  5. R环境之间的关系并不是嵌套关系。而是每一个环境都与一个父环境相连接。
  6. 环境与父环境的连接是单向的,我们可以轻易知道某个环境的父环境是什么,但是没有办法直接找到一个环境的子环境。
  7. R环境的树形结构不支持自上而下的搜索。

1.3.1 操作R环境

1.3.1.1 相关函数

函数 解释 应用
as.environment() 可以指向环境树中的任意一个环境 接受一个环境名称(字符串)作为输入,并返回该名称所对应的名称,路径
globalenv() 全局环境的调用函数 调用全局环境
baseenv() 基环境的调用函数 调用基环境
emptyenv() 空环境的调用函数 调用控环境
parent.env() 查看某一个环境的父环境 返回父环境的相关信息
ls() 查看储存在环境中的对象 返回对象名称
ls.str() 查看储存在环境中的对象 返回每个对象的结构
assign() 将对象储存在某个特定环境当中 用法:assign(“新对象名称(字符串)”,“新对象取值”,envir = “想要储存的环境名称”),如果该环境中已经具有一个相同名称的对象,assign函数会直接覆盖该对象的值。
  • 环境树中有三个环境拥有自己的调用函数,它们就是:全局环境、基环境和空环境。
  • 空环境中没有对象,基环境中有很多对象,打开R会话后创建的所有对象都会储存在全局环境中。
  • Rstodio的环境面板可以展示全局环境中的所有对象。
  • assign函数的作用类似于赋值符 <-。

1.3.1.2函数的操作与输出

> # as.environment()的应用
> as.environment("package:stats")# "package:stats"是环境名称
<environment: package:stats>
attr(,"name")
[1] "package:stats"
attr(,"p
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值