Выяснение, какие функции вызываются в данной функции [дубликаты]
Possible Duplicate:
Generating a Call Graph in R
Я хотел бы систематически анализировать данную функцию, чтобы выяснить, какие другие функции вызываются в этой самой функции. Если возможно, рекурсивно.
Я сталкивался с этой функцией в сообщении в блогеmilktrader с помощью которого я могу сделать что-то подобное дляpackages (или пространства имен)
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"
Тем не менее, я хотел бы функцию, гдеname
будет именем функции, а возвращаемое значение будет символьным вектором (или списком, если выполняется рекурсивно) функций, которые вызываются вname
.
Мне на самом деле нужен какой-то символьный вывод (вектор или список). Причина этого заключается в том, что я работаю над общей функцией-оберткой для распараллеливания абитеральной «внутренней функции»; где вам не нужно проходить длительный процесс проб и ошибок, чтобы выяснить, от каких других функций зависит внутренняя функция. Таким образом, выходные данные функции I 'm after будут непосредственно использованы вsnowfall::sfExport()
и / илиsnowfall::sfSouce
.
РЕДАКТИРОВАТЬ 2012-08-08
Поскольку из-за двуличности было несколько закрытых голосов, я проверю, как ответы могут быть объединены с другим вопросом завтра.