R中的`=`和`<-`有什么区别?

可能重复:
R中的赋值运算符:“=”和“< – ”

我正在使用R 2.8.1,可以同时使用=<-作为variables赋值操作符。 他们之间有什么区别? 我应该使用哪一个?

从这里 :

运算符< – 和=分配到它们被评估的环境中。 运算符< – 可以在任何地方使用,而运算符=只允许在顶层(例如,在命令提示符下键入的完整expression式)或者作为expression式的支撑列表中的一个子expression式。

从Robert和Casella的“用R介绍蒙特卡罗方法”

“赋值运算符是= ,不要和==相混淆, ==是布尔运算符的一个等号。旧的赋值运算符<-并且出于兼容性的原因,它仍然保持function,但为了确保更清晰的编程,它应该被忽略(如Spector,P。(2009)指出的'用R处理数据操作' – 第8.7节所述,使用system.time时是一个例外,因为=用于识别关键字)

赋值运算符< – 的误导性特征可以在布尔expression式中find,例如

 > if (x[1]<-2) ... 

它应该testingx [1]是否小于-2,但是最终将x分配给x [1],擦除它的当前值! 还要注意使用

 > if (x[1]=-2) ... 

错误地而不是(x [1] == – 2)具有相同的结果。