在R中声明对象的不同方式

这个问题在这里已经有了答案:

  • R中“=”和“< - ”之间有什么区别? 6个答案

  • 在某种意义上=<-是等价的,但是后者是首选的,因为=也被覆盖以指定默认参数(其中<-不起作用)。

    至于<<- ,它更棘手,不推荐。 在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 `<