如何在R中继续计算递归函数?

use*_*857 4 recursion r

我在R中有一个递归函数.我想跟踪它并知道在该过程中调用该函数的次数.我怎么能在R?

编辑:示例代码:

test <- function(num)
{
  if(num>100)
    return(num)
  num <- num+4
  res <- test(num)
  return(res)
}
Run Code Online (Sandbox Code Playgroud)

aic*_*hao 6

另一种不需要全局的方法<<-是:

test <- function(num, count=0) {
  if(num > 100)
    return(list(res=num, count=count))
  num <- num+4
  res <- test(num, count+1)
  return(res)
}
Run Code Online (Sandbox Code Playgroud)

注意调用的签名test是一样的。

test(1)
##$res
##[1] 101
##
##$count
##[1] 25
Run Code Online (Sandbox Code Playgroud)


JD *_*ong 5

使用<<-运算符创建一个全局变量,然后在递归函数中对其进行索引.

counter <<- 0
Run Code Online (Sandbox Code Playgroud)

然后在你的函数中将简单地递归使用:

counter <<- counter +1
Run Code Online (Sandbox Code Playgroud)