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