如何在R中的递归函数中进行计数?

时间:2016-10-07 20:19:18

标签: r recursion

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

中做到这一点

编辑:示例代码:

test <- function(num)
{
  if(num>100)
    return(num)
  num <- num+4
  res <- test(num)
  return(res)
}

2 个答案:

答案 0 :(得分:5)

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

counter <<- 0

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

counter <<- counter +1

答案 1 :(得分:4)

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

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

请注意,调用test的签名是相同的。

test(1)
##$res
##[1] 101
##
##$count
##[1] 25