我收到了一大块格式不佳的单体R代码,其中有很多函数,我希望能够找出哪个函数调用了哪些函数。
我想我可以使用roxygen的@callGraph功能,但是a)这段代码需要在一个包中,这会给这段代码带来麻烦,而且b)当我在我的一个简单包上运行它时,它甚至似乎也无法工作。我看到Roxygen作者之一发布的一篇文章说,由于依赖于Rgraphviz,呼叫图生成被禁用了,但代码还在那里。无论如何。
有没有更好的方法快速确定foo调用了bar、baz和qux,而qux调用了quux?
编辑:基于R的分析系统的解决方案非常好,假设你实际上能运行这段代码...文件中一半的东西都没有运行过,而且我不知道它们是什么...静态分析可能太难了,我想。
编辑2:Roxygen的调用图功能似乎进行了静态分析,基于函数的表达式的递归下降,并检查is.callable。能够在任何函数上运行这个将是可爱的......明天我可能会试试...