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

时间:2010-02-16 08:54:06

标签: r assignment-operator variable-assignment

  

可能重复:
  Assignment operators in R: '=' and '<-'

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

2 个答案:

答案 0 :(得分:56)

来自here

  

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

答案 1 :(得分:15)

阅读罗伯特和卡塞拉的“用R介绍蒙特卡罗方法”:

“赋值运算符为=,不要与==混淆,后者是相等的布尔运算符。较旧的赋值运算符为<-,并且出于兼容性原因,它仍然保持功能,但应该忽略它以确保更清晰的编程。 (正如Spector,P。(2009)所指出的那样。'数据操作与R' - 第8.7节。,例外是使用system.time时,因为=然后用于识别关键字)

在布尔值中找到赋值运算符&lt; - 的误导性特征 表达式,如

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

应该测试x [1]是否小于-2但结束 将2分配给x [1],擦除其当前值!另请注意使用

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

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