可能重复:
在R中生成调用图
我想系统地分析给定的函数,以找出在该函数中调用的其他函数.如果可能的话,递归地.
我在milktrader的博客文章中遇到了这个函数,我可以用它来做类似的包(或命名空间)
listFunctions <- function(
name,
...
){
name.0 <- name
name <- paste("package", ":", name, sep="")
if (!name %in% search()) {
stop(paste("Invalid namespace: '", name.0, "'"))
}
# KEEP AS REFERENCE
# out <- ls(name)
funlist <- lsf.str(name)
out <- head(funlist, n=length(funlist))
return(out)
}
> listFunctions("stats")
[1] "acf" "acf2AR" "add.scope"
[4] "add1" "addmargins" "aggregate"
[7] "aggregate.data.frame" "aggregate.default" "aggregate.ts"
[10] "AIC" "alias" "anova"
....
[499] "xtabs"
Run Code Online (Sandbox Code Playgroud)
然而,我想要一个函数,name它将是函数的名称,返回值是在其中调用的函数的字符向量(或者列表,如果以递归方式完成)name.
我实际上需要某种基于字符的输出(矢量或列表).这样做的原因是,我工作的一个通用的包装功能并行的abitrary"内部函数",你不必经过耗时的试错的过程,以找出其他功能内在的功能取决于.所以我之后的函数的输出将直接用于snowfall::sfExport() …