R计数函数调用

R计数函数调用,r,callstack,R,Callstack,这应该很容易,但在谷歌上找不到任何直接的答案 想象一下,在R中,我运行一个函数FOuter(),在它的主体中,它执行一些循环并调用另一个函数FInner()。是否有一种简单的方法来计算/记录FInner被调用的次数?我试图估计如果我优化FInner您要查找的跟踪,我可以节省多少时间 f1 <- function() 1 f2 <- function() { for(i in 1:10) f1() } .count <- 0 trace(f1, tracer=funct

这应该很容易,但在谷歌上找不到任何直接的答案


想象一下,在R中,我运行一个函数
FOuter()
,在它的主体中,它执行一些循环并调用另一个函数
FInner()
。是否有一种简单的方法来计算/记录
FInner
被调用的次数?我试图估计如果我优化
FInner

您要查找的
跟踪
,我可以节省多少时间

f1 <- function() 1
f2 <- function() {
    for(i in 1:10) f1()
}

.count <- 0
trace(f1, tracer=function() .count <<- .count +1)
f2()
.count
# 10
untrace(f1)

f1我看了一下Rprof。这似乎做了某种“采样”,然后提供了某种时间测量,用于某个函数。我要找的是更基本的。当我调用FOuter时,我想知道FInner被调用的确切次数。我能想到的最简单的解决方案是在每次调用
FInner
之前增加一个计数器,然后用
return(list(normal.output,counter))
返回带有输出的计数器。