对一般的赋值语句,“<-” 与 “=” 功能上无区别 ,但通常我们强推“<-”。
原因是等号存在二义性:它既可以赋值,也可以传递函数参数:如果等号出现在单独的环境中,它就是赋值;如果写在函数参数位置,它就是传参数。
R语言对命名参数定义的特殊性,总会让人很难理解赋值语句的 “=” 和函数中命名参数的本质区别。
在函数调用中,命名参数一定是用"=",这个时候最好不要用 "<-"。因为命名参数的“=”是不能用“<-”代替的,“<-”的作用是命名参数没有定义,而是命名参数这个时候是占位参数了
R中的赋值操作还有右指针箭头,网上有人这样形容右箭头赋值:某天某祖先写了一长段代码,但没有事先写上把这段代码的结果赋值保留下来,悔得肠子都青了,只好敲回车任凭程序在那儿跑,跑完了得不到返回值,于是该祖先发明了一个右箭头,这样即使先写了一段代码也不用怕,因为可以最后加上-> x就把前面的返回值赋给x了。