当前位置: 首页 > news >正文

R语言——赋值(= ,<- ,<<-)

R语言

R语言——赋值(= ,<- ,<<-)


文章目录

  • R语言
  • 一、 = 与 <- 的区别
  • 二、 <<- ,向上一环境层写入变量


R语言中" <- " 与 " = " 都可以用来赋值,但R中建议使用" <- “,大部分情况下这两者可以通用。在R中你可以使用 " Alt " + " - " 的组合来快速打出” <- "。

一、 = 与 <- 的区别

相较于 <- ,= 更受喜欢。一方面是 = 符合现在大部分语言的赋值习惯,二是相较于 <- 需要按两个键,=一个键就可以轻松搞定。
R语言中,<- 与 = 这两个赋值运算符最主要的区别在于两者的作用域不同。
下面举个例子:
在这里插入图片描述

  • 使用 <- 赋值时是在全局变量中定义的,只要不主动删除 x 变量,它就一直存在。
  • 使用 = 赋值时变量 x 是在函数的作用域里进行声明的,所以它只存在于此函数中,一旦运算完成便“消失”了。

最直观的就是使用 <- 赋值时 Global Environment 里出现了 x 变量。
在这里插入图片描述
上面讲的这些,并不是否认了 = 或者 <- (->也是被允许的,<- 的方向也是意味着赋值的方向)功能重复了,一般在R中用 <- 进行赋值,= 作为为子集赋“name”的存在。
例如一个规范的的赋值是这样使用的:
在这里插入图片描述
这里再提一个不怎么会遇见的点:在 R 中,在参数中进行赋值的变量只有在需要进行评估时才会改变其值。意思也就是如果变量在函数传递时局部改变了量,其值是不会改变的。
例如:
在这里插入图片描述
此时变量 a 的值虽然在函数中被 +1 了,但其最终在环境变量中并没有被改变。

二、 <<- ,向上一环境层写入变量

在R中任意层都可以读取上层环境变量,但是 <- 是无法往上层写入变量的,需要用到 <<- 来向上一环境层写入变量。
例如:
在这里插入图片描述
首先要明确的一点是,在读取值时读的是全局变量的值,也就是 Global Environment中的变量值。
示例中首先是编写了一个函数pluxs,里面定义了三个局部变量。此时这时候函数还没被调用所以三个变量皆为空。
接着定义了一个全局变量 x=1 ,并且调用了pluxs函数,使得里面的局部变量值有了变化,但只有a使用了 <<- 赋值,所以只有a的值被写入上层环境中,这时的上层环境已经是顶层环境了(逐层上找,直到顶层环境),但是仍然没有找到被定义的变量 a ,那么R就会自己在 Global Environment中定义一个变量 a 并将2的值写进去。
也就是说此时 Global Environment中的变量为 a=2 ,x=1(局部变量x有改变,但是并没有被写入 Global Environment中)
所以这时候可以读到的就是这俩变量的值。

http://www.lryc.cn/news/192274.html

相关文章:

  • 图形界面四则运算计算器(Python+PyQt5)
  • SQL Server 创建表
  • JS数组或数组对象去重常用方法
  • allure测试报告生成逻辑--解决在Jenkins里打开allure报告页面后空白显示无数据问题(以window环境为例)
  • 基于JAYA优化的BP神经网络(分类应用) - 附代码
  • JavaScript进阶(二十六):ES各版本特性详解
  • 排序算法-快速排序法(QuickSort)
  • Python 简介
  • grafana api创建dashboard 记录
  • 局域网上IP多播与IP单播关于MAC地址的区别
  • 三数之和[中等]
  • 基于天牛须优化的BP神经网络(分类应用) - 附代码
  • 渗透波菜网站
  • Spring Boot:Dao层-实例介绍
  • 接口测试入门:深入理解接口测试!
  • Redis微服务架构
  • 【C++】 局部对象,引用返回
  • 线性代数中涉及到的matlab命令-第二章:矩阵及其运算
  • 计算机毕业设计选什么题目好?springboot 美食推荐系统
  • 爆肝整理,Jmeter接口性能测试-跨线程调用变量实操(超详细)
  • Maven导入程序包jakarta.servlet,但显示不存在
  • es6(二)——常用es6说明
  • 经典垃圾回收器
  • 台达DOP-B07S410触摸屏出现HMI no response无法上传的解决办法
  • [资源推荐] 复旦大学张奇老师科研分享
  • C++数位动态规划算法:统计整数数目
  • ip 网段设置 --chatGPT
  • 使用JMeter进行接口测试教程
  • 文本生成解码策略
  • 华为数通方向HCIP-DataCom H12-831题库(单选题:221-240)