es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En R markdown, ¿cómo puedo evitar que los gráficos de fragmentos no almacenados en caché se guarden por separado?

Cuando se teje un archivo R markdown, los gráficos generados desde cualquier trozo de código con cache=TRUE se guardan de forma independiente en la salida HTML. Esto tiene sentido para mí. Sin embargo, si incluso un solo trozo de código tiene la opción cache=TRUE, todos los trozos, incluidos aquellos con cache=FALSE, tienen sus gráficos guardados de forma independiente. Por ejemplo, el siguiente código guarda archivos de imagen para ambos trozos de código:

---
title: "Prueba de caché de gráficos"
output:
  html_document:
    df_print: paged
---

```{r test_plot1, cache = FALSE}
library(ggplot2)
ggplot(airquality, aes(x = Temp, y = Wind)) +
  geom_point()

{r test_plot2, cache = TRUE}
library(ggplot2)
ggplot(airquality, aes(x = Month, y = Ozone)) +
geom_point()

¿Existe alguna manera de evitar esto si alguien quiere implementar el caché en trozos particulares pero no quiere guardar de forma independiente cada gráfico en la salida? Si no existe tal opción y esto se ha diseñado así, ¿cuál es la razón? ¿Por qué sería necesario guardar los gráficos de trozos que no implementan el caché?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay forma de evitar el guardado independiente de todos los gráficos cuando incluso un solo fragmento tiene la opción cache=TRUE establecida. Este comportamiento está diseñado así y la razón detrás de ello es garantizar la reproducibilidad. Cuando un fragmento tiene cache=TRUE, su salida (incluidos los gráficos) se almacena en caché para que se pueda recuperar rápidamente la próxima vez que se ejecute el código, sin volver a ejecutar el fragmento. Sin embargo, si otros fragmentos con cache=FALSE tienen gráficos que no se guardan de forma independiente, podrían cambiar la salida visual del documento, lo que dificultaría replicar exactamente los mismos resultados. Por lo tanto, para garantizar que los mismos gráficos se reproduzcan siempre al ejecutar el documento, se guardan de forma independiente todos los gráficos cuando algún fragmento tiene cache=TRUE.

Comments are closed.