R语言【base】——通过超赋值符(<<-)向上层环境中的变量写入值,或者在上层环境中创建新变量并写入值

Package base version 4.3.2


在 R 语言中,处在某一个环境层的代码都拥有读入上一环境层的变量的权限,但相反地,若只通过标准的赋值运算符**<-** ,是无法向上一环境层写入变量的。若想在上一环境层进行赋值行为,即向上一层次写入变量,则需要用到 <<-(superassignment)运算符。


一般说来, <<- 多用于在顶层环境中写入变量。然而需要注意的是,以 **<<-**执行赋值时,会一直向上直至顶层进行变量查找。若在查找过程中寻找到该名称的变量,就会进行赋值操作。否则,将在顶层环境中创建变量并赋值。


R 复制代码
test_suprassign <- function(){
  a <- 1
  b <- 2
  nxta <- function(){a <<- a + 1}
  nxtc <- function(){c <<- b + 1}
  nxta()
  nxtc()
  c
}

> test_suprassign()
[1] 3


> a
错误: 找不到对象'a'

> b
错误: 找不到对象'b'

> d
[1] 3
相关推荐
q5673152314 小时前
R语言初学者爬虫简单模板
开发语言·爬虫·r语言·iphone
shootero@126.com2 天前
R语言开发记录,二(创建R包)
r语言
shootero@126.com2 天前
R语言开发记录,一
开发语言·r语言
旷世奇才李先生2 天前
R 语言安装使用教程
开发语言·r语言
十三画者13 天前
【科研绘图系列】R语言绘制circos图形(circos plot)
数据挖掘·数据分析·r语言·数据可视化
Morpheon13 天前
使用 R 处理图像
开发语言·计算机视觉·r语言
WW、forever14 天前
服务器手动安装并编译R环境库包:PROJ→RGDAL
运维·服务器·r语言
WW、forever15 天前
【服务器R环境架构】基于 micromamba下载 R 库包
运维·服务器·r语言
Jet450517 天前
第100+42步 ChatGPT学习:R语言实现阈值调整
开发语言·学习·chatgpt·r语言
Smiling63917 天前
【R】基于R实现贝叶斯分析(一)
r语言·贝叶斯分析·bayes