R中的`=`和`< -`完全相同?

时间:2010-08-08 09:06:09

标签: r assignment-operator

  

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

这只是一种风格偏好吗?

据我所知,他们是same

我看到很多人更喜欢“较长”的<-版本而我无法说明原因(可能会远离===混淆?)

1 个答案:

答案 0 :(得分:7)

不,它们不完全相同:=运算符不能在<-可以使用的任何地方使用。

  

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

范围也有差异。有关详细信息,请参阅this answer

哪个更好取决于你问的是谁。


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

  

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

Source


另一方面,Google's R style guide建议使用<-

  

分配

     

使用&lt; - ,not =进行作业。

     

不可
  x < - 5

     

<强> BAD
  x = 5