118

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

4

2 回答 2

67

这里

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

于 2010-02-16T08:56:55.080 回答
17

阅读 Robert 和 Casella 的“用 R 介绍蒙特卡洛方法”:

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

赋值运算符 <- 的一个误导性特征出现在布尔表达式中,例如

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

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

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

错误地代替 (x[1]==-2) 具有相同的后果。”

于 2010-02-16T09:53:35.707 回答