R中`=`和`<-`有什么区别?
我使用的是 R 2.8.1,可以使用 =
和 <-
作为变量赋值运算符。他们之间有什么区别?我应该使用哪一个?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我使用的是 R 2.8.1,可以使用 =
和 <-
作为变量赋值运算符。他们之间有什么区别?我应该使用哪一个?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
来自此处:
From here:
阅读 Robert 和 Casella 所著的《R 蒙特卡罗方法简介》:
“赋值运算符是
=
,不要与==
混淆,后者是布尔运算符较旧的赋值运算符是<-
,出于兼容性原因,它仍然保持功能,但应忽略它以确保更清晰的编程。例外,因为随后使用 = 来标识关键字)
(正如 Spector, P. (2009).“使用 R 进行数据操作”- 第 8.7 节所指出的,使用
system.time
时是一个 布尔值中存在赋值运算符 <- 的误导性特征诸如
which的表达式应该测试x[1]是否小于-2但结束
将 2 分配给 x[1],擦除其当前值!另请注意,
错误地使用 (x[1]==-2) 会产生相同的后果。”
Reading from "Introducing Monte Carlo Methods with R", by Robert and Casella:
"The assignment operator is
=
, not to be confused with==
, which is the Boolean operator for equality. An older assignment operator is<-
and, for compatibility reasons, it still remains functional, but it should be ignored to ensure cleaner programming.(As pointed out by Spector, P. (2009). 'Data Manipulation with R' - Section 8.7., an exception is when using
system.time
, since = is then used to identify keywords)A misleading feature of the assignment operator <- is found in Boolean
expressions such as
which is supposed to test whether or not x[1] is less than -2 but ends
up allocating 2 to x[1], erasing its current value! Note also that using
mistakenly instead of (x[1]==-2) has the same consequence."