我想知道R中的赋值运算符"="
和"<-"
之间是否存在技术差异。所以,如果我使用它会有什么不同:
示例1:a = 1
或a <- 1
示例2:a = c(1:20)
或a <- c(1:20)
感谢您的帮助
斯文
答案 0 :(得分:20)
是的。这就是'='
的帮助页面所说的内容:
运算符&lt; - 和=赋值给 它们所处的环境 评估。可以使用运算符&lt; - 在任何地方,而运营商=是 只允许在顶层(例如, 在输入的完整表达式中 命令提示符)或作为其中之一 支撑列表中的子表达式 表达式。
使用“可以使用”帮助文件意味着在此处分配对象。在函数调用中,您无法使用=
分配对象,因为=
表示在那里分配参数。
基本上,如果您使用<-
,那么您可以分配一个可以在当前环境中使用的变量。例如,考虑:
matrix(1,nrow=2)
这只是一个2行矩阵。现在考虑:
matrix(1,nrow<-2)
这也为你提供了一个双行矩阵,但现在我们还有一个名为nrow
的对象,其值为2!发生的事情是,在第二次使用中我们没有分配参数nrow
2,我们分配了一个对象nrow
2并将其发送到matrix
的第二个参数,恰好是nrow。
至于编辑过的问题。两者都是一样的。使用=
或<-
会引起很多关于哪一个最好的讨论。许多风格指南倡导者<-
并且我同意这一点,但确实在<-
作业周围保留空格,否则它们很难解释。如果你不使用空格(你应该,除了在推特上),我更喜欢=
,从不使用->
!
但是,只要你的选择一致,那么你使用什么并不重要。在一行上使用=
而在下一行使用<-
会导致代码非常难看。