Me han dado una gran cantidad de código R monolítico mal formateado con muchas funciones, y me gustaría averiguar qué funciones llaman qué funciones.Generando un gráfico de llamadas en R
Pensé que podría usar el material de @callGraph de roxygen, pero a) el código debe estar en un paquete, lo que será un dolor de cabeza con este código, yb) ni siquiera parece funcionar cuando corro en un simple paquete mío. Veo una publicación de uno de los autores de Roxygen que dice que la generación del gráfico de llamadas está desactivada debido a la dependencia de Rgraphviz, pero el código está ahí. De todas formas.
Cualquier persona tiene una forma mejor de resolver rápidamente las llamadas foo bar, baz y qux, y que qux llama a quux?
Edición: Las soluciones basadas en el sistema de creación de perfiles de R son geniales, suponiendo que pueda ejecutar el código ... La mitad de las cosas en los archivos no se ejecutan, y no sé lo que hace ... Estático el análisis es demasiado para esperar, supongo.
Edición 2: el material del gráfico de llamadas de Roxygen parece hacer un análisis estático, basado en el descenso recursivo de la expresión de la función y la comprobación de is.callable. Sería maravilloso poder ejecutar esto en cualquier función ... Puedo jugar con esto mañana ...
Estaba ponderando la idea de escribir una función que hiciera algo como esto. Y eso fue justo sobre el momento en que publicaste la publicación del blog anterior. ¿Grandes mentes piensan igual? :) –
Más o menos exactamente lo que estaba buscando. Ahora, para convertir la salida en formato de punto, o tal vez cargarla en otro paquete de gráfico R ... – Spacedman