R语言【base】——通过超赋值符(<<-)向上层环境中的变量写入值,或者在上层环境中创建新变量并写入值
2023-12-21 18:46:01
Package?base?version 4.3.2
在 R 语言中,处在某一个环境层的代码都拥有读入上一环境层的变量的权限,但相反地,若只通过标准的赋值运算符?<-
?,是无法向上一环境层写入变量的。若想在上一环境层进行赋值行为,即向上一层次写入变量,则需要用到?<<-
?(superassignment)运算符。
一般说来,?<<-
?多用于在顶层环境中写入变量。然而需要注意的是,以?<<-
?执行赋值时,会一直向上直至顶层进行变量查找。若在查找过程中寻找到该名称的变量,就会进行赋值操作。否则,将在顶层环境中创建变量并赋值。
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
文章来源:https://blog.csdn.net/whitedrogen/article/details/135134640
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!