varias superponer studio modificar graficos graficas ggplot ejes barplot r call-graph

studio - superponer graficas en r ggplot



Generando un gráfico de llamadas en R (4)

¿ profr ayudaría profr ? De la documentación:

> ?profr > glm_ex <- profr(example(glm)) Read 17 items > head(glm_ex) f level time start end leaf source 8 example 1 0.32 0.00 0.32 FALSE utils 9 <Anonymous> 2 0.04 0.00 0.04 FALSE <NA> 10 source 2 0.28 0.04 0.32 FALSE base 11 prepare_Rd 3 0.02 0.00 0.02 FALSE <NA> 12 render 3 0.02 0.02 0.04 FALSE <NA> 13 getSrcLines 3 0.02 0.04 0.06 FALSE base > summary(glm_ex) f level time start eval.with.vis :10 Min. : 1.000 Min. :0.02 Min. :0.0000 <Anonymous> : 3 1st Qu.: 4.000 1st Qu.:0.02 1st Qu.:0.1200 lazyLoadDBfetch: 3 Median : 6.000 Median :0.02 Median :0.2000 %in% : 3 Mean : 7.211 Mean :0.03 Mean :0.1769 inherits : 3 3rd Qu.: 9.000 3rd Qu.:0.02 3rd Qu.:0.2600 is.factor : 3 Max. :22.000 Max. :0.32 Max. :0.3000 (Other) :65 end leaf source Min. :0.0200 Mode :logical Length:90 1st Qu.:0.1500 FALSE:75 Class :character Median :0.2400 TRUE :15 Mode :character Mean :0.2069 NA''s :0 3rd Qu.:0.2800 Max. :0.3200 > plot(glm_ex)

No es exactamente lo que está buscando, pero puede adaptarlo a sus necesidades.

Me han dado una gran parte de código R monolítico mal formateado con muchas funciones, y me gustaría averiguar qué funciones llaman a qué funciones.

Pensé que podría usar las cosas de @callGraph de roxygen, pero a) el código debe estar en un paquete, que será un dolor de cabeza con este código, yb) ni siquiera parece funcionar cuando lo ejecuto de forma simple paquete mio Veo una publicación de uno de los autores de Roxygen que dice que la generación de gráficos de llamadas está deshabilitada debido a la dependencia de Rgraphviz, pero el código está ahí. De todas formas.

¿Alguien tiene una mejor manera de resolver rápidamente que foo calls bar, baz, y qux, y qux se llama quux?

Edición: las soluciones basadas en el sistema de perfiles de R son excelentes, suponiendo que realmente pueda ejecutar el código ... La mitad de las cosas en los archivos no se ejecutan, y no sé lo que hace ... El análisis estático es demasiado para esperar, supongo.

Edición 2: las cosas del gráfico de llamadas de Roxygen parecen hacer un análisis estático, basado en el descenso recursivo de la expresión de la función y la verificación de si.callable. Sería encantador poder ejecutar esto en cualquier función ... Puedo jugar con esto mañana ...


Además de proftools y profr, está el script Perl de Romain en la R Wiki. Combinado con graphviz, hace gráficos (con bordes cargados); consulte aquí para obtener más información.


El paquete CodeDepends ( CRAN , website , GitHub ) parece interesante, aunque no lo he CodeDepends . Entre otros, promete.

  • Creación de gráficos de llamadas entre conjuntos de funciones.

presumiblemente a través de la función makeCallGraph() .


No lo he usado, pero un vistazo rápido al paquete proftools indica que puede hacerlo. Primero deberá ejecutar Rprof y luego usar proftools para analizar el resultado. Creo que quieres la función plotProfileCallGraph() .