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
相关推荐
探序基因8 小时前
R语言读取单细胞转录组基因表达矩阵loom文件
开发语言·r语言
房开民2 天前
paddle 文本检测识别模型转为onnx
开发语言·r语言·paddle
全栈开发圈2 天前
干货分享|R语言聚类分析2
人工智能·机器学习·r语言
全栈开发圈3 天前
干货分享|R语言聚类分析1
开发语言·r语言
AI科技星6 天前
空间光速螺旋动力学:统一质量、引力、电磁与时空本源的公理化理论与全现象验证
c语言·开发语言·opencv·算法·r语言
zhangfeng113310 天前
提示 R for Windows front-end 怎么被防火墙 阻止了 Rscript.exe` 和 `R.exe`区别
windows·r语言·php
全栈开发圈10 天前
新书速览|R语言医学数据分析与可视化
开发语言·数据分析·r语言
木与长清11 天前
人鼠同源基因离线转换
数据库·矩阵·数据分析·r语言
HP-Patience11 天前
【Rmarkdown】快速入门
r语言
HP-Patience11 天前
【Data Mining】01抽样技术
人工智能·数据挖掘·r语言