On m'a donné un gros morceau de code R monolithique mal formaté avec beaucoup de fonctions, et j'aimerais savoir quelles fonctions appellent quelles fonctions. J'ai pensé que je pourrais utiliser les trucs @callGraph de roxygen, mais a) le code doit être dans un paquet, ce qui sera un mal de tête avec ce code, et b) il ne semble même pas fonctionner quand je cours sur un simple paquet de la mienne. Je vois une publication d'un des auteurs de Roxygen disant que la génération de graphe d'appel est désactivée à cause de la dépendance de Rgraphviz, mais le code est là. En tous cas. Quelqu'un a-t-il une meilleure façon de calculer rapidement que foo appelle bar, baz et qux, et que qux appelle quux?Génération d'un graphe d'appel en R
Éditer: Les solutions basées sur le système de profilage de R sont excellentes, en supposant que vous puissiez réellement exécuter le code ... La moitié du contenu des fichiers ne fonctionne pas, et je ne sais pas ce que ça fait ... Statique l'analyse est trop à espérer, je suppose.
Édition 2: La substance du graphe d'appel de Roxygen semble effectuer une analyse statique, basée sur la descente récursive de l'expression de la fonction et vérifiant is.callable. Je serais ravi de pouvoir l'exécuter sur n'importe quelle fonction ... Je peux jouer avec ça demain ...
Je réfléchissais à l'idée d'écrire une fonction qui ferait exactement quelque chose comme ça. Et c'était juste au moment où vous avez posté l'article de blog ci-dessus. Les grands esprits se rencontrent? :) –
À peu près exactement ce que j'étais après. Maintenant, pour transformer la sortie en format de point, ou peut-être le charger dans un autre paquet graphique R ... – Spacedman