每次调用函数时,都会增加函数内部的值

use*_*020 4 r function

我有一个功能说,

inc <- function(t) {
       f <- 1
       t + f
}
Run Code Online (Sandbox Code Playgroud)

因此,第一次调用函数inc时,f将会是1,但是下次调用它时f应该是值,2并且当inc第3次调用函数f值时应该3等等......

我怎么在R?

jim*_*iki 6

我经常使用这个.我不知道这是一招还是黑客攻击:

getF <- function(){
   x <- 1
   function(t){
      x <<- t + x
   }
}

f <- getF() 
Run Code Online (Sandbox Code Playgroud)

f是一个函数(返回值getF),它的封闭环境不是全局环境,而是f定义的环境.看看environment(f).<<-分配x到那个环境:看到ls(environment(f))get("x", environment(f)).

print(f(3))#4
print(f(4))#8
Run Code Online (Sandbox Code Playgroud)