r语言for循环赋值_R语言中,为什么赋值要避免使用"<-"

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言高效数据处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。

今天看到一篇文章,认为R应该尽量用“<-”来进行赋值(R语言冷知识,为什么赋值要用<-),我觉得有问题,并给出理由。

在R中,赋值一般可以用等号(“=”)、箭头(“<-”,“->”)进行赋值,其中等号一般是从右往左赋值,箭头则是指向哪里就往哪里赋值。很多计算机语言都支持等号赋值,因此等号具有很强的通用性,一个字符也比两个字符更加便捷一些。不过很多时候,我们有从左到右的顺序习惯,因此我也会使用“->”来先计算,然后赋值给一个变量。例子如下:

# 等号赋值
a = 1

# 箭头赋值
1 + 2 + 3 -> b

至于为什么需要尽量避免用“<-”进行赋值呢?因为它容易出现二义性,这在计算机编程中是需要极力避免的。大家可以试试下面的代码:

1 < -2
1<-2

看起来长得很像,但是算起来结果是非常不同的:

390bd7728da56bf80b25c33f9242dee0.png

究竟是判断1小于-2,还是试图把2赋值给1呢(这是非法操作,R不允许以数字作为变量)?这就出现了歧义。“<-”有赋值和小于负的某值,两重含义,这是需要避免的。当然也可以再这个符号后面加上空格,去除这个歧义,这样容错性较低。

基于以上的认知,我认为应该尽量减少对“<-”的使用,而多使用“=”和“->”进行赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值