问题描述
|
这个问题已经在这里有了答案:
解决方法
就在这里。这就是
\'=\'
的帮助页面所说的:
运算符<-和=分配给
他们所处的环境
评估。运算符<-可以使用
任何地方,而运算符=是
仅允许在最高级别(例如,
在键入的完整表达式中
命令提示符)或作为
括号列表中的子表达式
表达式。
使用“可以使用”,帮助文件意味着在此处分配对象。在函数调用中,您无法使用=
分配对象,因为=
意味着在那里分配参数。
基本上,如果您使用<-
,则分配一个可以在当前环境中使用的变量。例如,考虑:
matrix(1,nrow=2)
这只是一个2行矩阵。现在考虑:
matrix(1,nrow<-2)
这也为您提供了两行矩阵,但是现在我们还有一个名为nrow
的对象,其结果为2!发生的事情是,在第二次使用中,我们没有分配参数nrow
2,而是分配了对象nrow
2并将其发送给to9ѭ的第二个参数,而第二个参数恰好是nrow。
编辑:
至于编辑的问题。两者是相同的。 =
或<-
的使用可能引起很多讨论,哪一个最好。许多风格指南都主张<-
,但我也同意,但是一定要在<-
作业周围保留空格,否则它们很难解释。如果您不使用空格(除了推特上应该使用空格),我更喜欢=
,而不要使用->
!
但实际上,只要选择一致,使用什么都无关紧要。在一行上使用=
,在下一行使用<-
会产生非常难看的代码。