在R中声明对象的不同方式
这个问题在这里已经有了答案:
在某种意义上=
和<-
是等价的,但是后者是首选的,因为=
也被覆盖以指定默认参数(其中<-
不起作用)。
至于<<-
,它更棘手,不推荐。 在R中,沿任意代码执行的每一步都将与一堆环境相关联 - 当前环境,当前函数被调用的环境等等。运算符<<-
试图将值分配给发现的最近对象在此环境层次结构中,如果没有找到,请在全局环境中进行分配。 例如,下面是一个基本的加法器。
f <- (function() { x <- 0; function(y) { x <<- x + y; x } })()
f(10) # 10
f(5) # 15
函数f
具有一个具有x
的父环境的环境。 使用<<-
,我们可以访问那个x
,而如果我们有<-
,每次结果都是y
而不是跟踪总和。 这是因为<-
将在本地范围内创建一个x
副本,并且它始终为0
因为该值是从父环境复制的。
有关这些错综复杂的更多信息,您还可以查看相关的R文档。
链接地址: http://www.djcxy.com/p/73841.html上一篇: The different ways of declaring objects in R
下一篇: Are `=` and `<