나는 R에서 재귀 함수를 가지고있다. 나는 그것을 추적하고 함수가 프로 시저 동안 얼마나 자주 호출되는지 알고 싶다. R에서 어떻게 할 수 있습니까?R에서 재귀 함수를 계속 유지하려면?
EDIT : 시료 번호 :
test <- function(num)
{
if(num>100)
return(num)
num <- num+4
res <- test(num)
return(res)
}
나는 R에서 재귀 함수를 가지고있다. 나는 그것을 추적하고 함수가 프로 시저 동안 얼마나 자주 호출되는지 알고 싶다. R에서 어떻게 할 수 있습니까?R에서 재귀 함수를 계속 유지하려면?
EDIT : 시료 번호 :
test <- function(num)
{
if(num>100)
return(num)
num <- num+4
res <- test(num)
return(res)
}
세계를 필요로 <<-
가없는 또 다른 방법 :
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
재귀 함수 후이를 색인을 <<-
연산자를 사용하여 전역 변수를 생성한다. 다음
counter <<- 0
는 함수에 그 재귀 적으로 간단하게 사용됩니다
counter <<- counter +1
전역 범위의 변수에 할당하는 것은 좋은 방법은 아닙니다. 함수가 범위를 사용자 정의하면이 또한 중단됩니다. – smci
예, 동의했습니다. @aichao는보다 세련된 솔루션을 제공합니다. 글로벌 부작용은 일반적으로 매우 나쁜 생각입니다. –
Rcpp는 재귀에 특히 적합합니다. R, 정말 그걸 빨아 들인다. –