我可以调用一个函数,但是另一个函数的内部调用找不到该函数

时间:2016-08-10 18:46:34

标签: r

我有一个对象,假设它被称为obj。我可以调用一个函数obj$a(),这样可行。但是,当我调用内部调用obj$b()的{​​{1}}时,会抛出错误,指出它无法找到self$a()函数。我该怎么办?

1 个答案:

答案 0 :(得分:2)

您需要确保函数共享一个环境/在同一个闭包中。您可以将它们封装在虚函数中。看看这个例子:

gives_error <- list(a = function() { 
                          print("Hello from a")
                        },
                    b = function(){
                          print("Hello from b")
                          a()
                    })

gives_error$b()


will_work <-
    (function() {
        a = function(){ 
            print("Hello from a")
        }
        b = function(){
            print("Hello from b")
            a()
        }
        list(a = a, b = b)
    })()

will_work$b()