Estoy intentando usar la función R-Markdown en R Studio, donde estaba tratando de imprimir trazados que se generan dentro de una función. Este es un ejemplo básico y descuidado de lo que estoy tratando de hacer.Imprimir trazados generados en una función utilizando R Markdown en RStudio
**Test printing plots generated in a function**
================================================
``` {r fig.width=8, fig.height=4, warning=FALSE, eval=TRUE, message=FALSE, tidy=TRUE, dev='png', echo=FALSE, fig.show='hold', fig.align='center'}
dat <- data.frame(x=c(1:10),y=c(11:20),z=c(21:30),name=rep(c("a","b"),each=5))
library(ggplot2)
ex <- function(data){
plot(data[,1],data[,2])
plot(data[,1],data[,3])
}
for (i in 1:10){
t1 <- rbind(i,ex(dat))
}
t1
```
Los probar este código, por favor asegúrese de guardarlo como archivo ".RMD" y ejecute el knithtml() en la barra de herramientas rstudio. Este código anterior funciona absolutamente bien con el tipo de salida html que deseo. Sin embargo, cuando reemplazo la función de trazado base por código basado en ggplot, no puedo obtener knithtml() para producir la salida ggplot de los 10 gráficos que obtuve como antes. El código de la gráfica base anterior ahora se reemplazó por el siguiente código
p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1
Me falta algo muy simple aquí.
VJ
Qué pasa si usted hizo una parcela facetas y unida que? –
¡No! Mientras esté dentro de la función, no se está imprimiendo. Además, acabo de probar que qplot() produce el resultado deseado mientras que ggplot no lo hace. ¿No puedo imprimir un objeto ggplot generado dentro de una función, fuera de otra forma que no sea usar ggsave() para guardarlo como un pdf, p. Ej. –
Dentro de la declaración 'for' o en una función, necesita' print' ggplot2 object explícitamente, por lo tanto intente 'print (p1)'. – kohske