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)具有相同的结果。