"="和"<-"之间是否有技术上的区别?"
"="和"<-"之间是否有技术上的区别?"
这个问题已经有了答案:
我想知道在R中赋值运算符\"=\"
和\"<-\"
之间是否有技术上的区别。所以,如果我使用:
示例1:a = 1
或a <- 1
示例2:a = c(1:20)
或a <- c(1:20)
谢谢你的帮助
Sven
admin 更改状态以发布 2023年5月23日
是的,有的。这是符号'='
的帮助页面上写的:
操作符
<-
和=
将值赋给它们所在的环境。操作符<-
可以在任何地方使用,而操作符=
只有在顶层(例如,在命令提示符下键入的完整表达式)或作为括号内表达式列表中的子表达式时才被允许。
帮助文件中的“可以在任何地方使用”是指在此处分配对象。在函数调用中,你不能使用=
分配对象,因为=
在那里表示分配参数。
基本上,如果你使用<-
,那么你会在当前环境中分配一个变量,可以在其它地方使用。例如,考虑:
matrix(1,nrow=2)
这只创建了一个2行的矩阵。现在考虑:
matrix(1,nrow<-2)
这也给出了一个两行的矩阵,但现在我们还有一个叫做nrow
的对象,它被评估为2!发生了什么是在第二个使用中,我们没有将参数nrow
分配为2,而是将对象nrow
分配为2并将其发送到matrix
的第二个参数,该参数恰好是nrow。
编辑:
至于编辑后的问题。两个是相同的。使用=
或<-
可能会引起很多讨论,看哪个更好。许多样式指南主张使用<-
,我也赞同这一点,但在<-
赋值周围保留空格,否则它们可能会变得很难解释。如果你不使用空格(除了Twitter之外,应该使用),我更喜欢使用=
,并且从不使用->
!
但是,真的无论你使用什么,只要你在选择上始终保持一致即可。在一行使用=
,在下一行使用<-
会导致非常丑陋的代码。