Foro de debate

Sweave: cómo introducir gráficos con un ciclo for

Sweave: cómo introducir gráficos con un ciclo for

de Igor Gutiérrez -
Número de respuestas: 4
Buenas!

Estoy utilizando Sweave para generar documentos en Latex, todo esto a través de R-Studio.

Me interesa sobre todo automatizar las órdenes a R de tal forma que cuando cambie la base de datos a analizar Sweave me lo compile sin problemas y sin apenas tener que modificar el archivo .Rnw.

He logrado programar un resumen de estadísticos principales así como tablas de recuentos de tal forma que, introduciendo al principio del documento el conjunto de variables a analizar, Sweave me genera todo a través de un ciclo for, de la primera a la última variable.

En estos momentos estoy intentando automatizar la generación de gráficos para que me produzca un gráfico para cada una de las variables introduciento un ciclo for en un solo chunk.

La verdad es que he encontrado poca documentación al respecto, ahí va un ejemplo:

http://www.statistik.lmu.de/~leisch/Sweave/FAQ.html#x1-11000A.9

He hecho pruebas con el chunk que proponen pero no logro nada:

<<results=tex,echo=FALSE>>=
for(i in 1:4){
file=paste("myfile", i, ".eps", sep="")
postscript(file=file, paper="special", width=6, height=6)
plot(rnorm(100)+i)
dev.off()
cat("\\includegraphics{", file, "}\n\n", sep="")
}
@

Si alguien pudiera ayudarme con este tema le estaría tremendamente agradecido.

Eskerrik asko/Muchas gracias
En respuesta a Igor Gutiérrez

Re: Sweave: cómo introducir gráficos con un ciclo for

de Manuel Muñoz Márquez -
Buenas Igor y foreros:

A mí me funciona. ¿Qué quieres decir con "no logro nada"?:
  • ¿Da algún fallo al ejecutar?
  • ¿Da algún fallo al hacer LaTeX?
  • ¿No se generan los ficheros eps?
  • ...


Sería interesante que dijeras qué versión de R estás usando y sobre que sistema operativo.


Saludos



En respuesta a Manuel Muñoz Márquez

Re: Sweave: cómo introducir gráficos con un ciclo for

de Igor Gutiérrez -
Buenas:

Lo primero muchísimas gracias por la respuesta. Espero contribuir con mis problemas a que otros usuarios puedan solucionar también los suyos.

Mi sistema operativo es Windows 7 y la versión de R-Studio es 0.96.122, siendo la versión de R la 2.14.1 y la versión de MikTeX la 2.9.

El problema que tengo parece estar en el pdflatex. Primero he obtenido un error diciendo que la extensión .eps no era válida. He cambiado esa extensión por .pdf y luego por .jpg pero no compila, éste es el mensaje que muestra:

You can now run (pdf)latex on 'pruebadeplotsenfor.tex' > > Running texi2dvi on pruebadeplotsenfor.tex...failed Error running C:/PROGRA~2/MIKTEX~1.9/miktex/bin/pdflatex.exe (exit code 1)

He revisado en la carpeta y efectivamente los archivos están creados, con cualquiera de las tres extensiones mencionadas. Lo que pasa es que no me deja abrirlos.

Se me olvidaba comentar que estaba trabajando desde una carpeta en Dropbox y parece que otros usuarios han tenido el mismo problema, como he podido leer en este link:

http://support.rstudio.org/help/discussions/problems/1612-error-compiling-pdf-with-knitr


Entonces he intentado ponerme a trabajar desde una carpeta en el escritorio pero no he solucionado el problema. En el archivo .log me advierte de lo siguiente:

{C:/ProgramData/MiKTeX/2.9/pdftex/config/pdftex.map}]
!pdfTeX error: pdflatex.exe (file C:/Users/Igor/Desktop/myfile1.JPEG): reading
JPEG image failed (no JPEG header found)
==> Fatal error occurred, no output PDF file produced!

Y con la extensión .eps me dice lo siguiente:

{C:/ProgramData/MiKTeX/2.9/pdftex/config/pdftex.map}]

C:/Users/Igor/Desktop/pruebafor.tex:88: LaTeX Error: Unknown graphics extension: .eps.


¿Qué está pasando?

En respuesta a Igor Gutiérrez

Re: Sweave: cómo introducir gráficos con un ciclo for

de Manuel Muñoz Márquez -
Buenas:

El fichero R únicamente tiene instrucciones para crear archivos eps y no pdf, ni jpg. Por tanto, únicamente deberías tener archivos eps en la carpeta.

¿No puedes abrir ninguno, ni eps, ni pdf, ni jpg? ¿Qué tamaño tienen?

Por otra parte, los archivos eps son apropiados para LaTeX y no para pdfLaTeX. ¿Que ocurre si haces latex?

Si quieres hacer pdflatex, puedes probar a crear los gráficos con pdf() en vez de con postcript().

Tus ficheros postcript, ¿tienen una sola página?

Por cierto, dentro de la instrucción LaTeX \includegraphics es mejor no poner la extensión del fichero, LaTeX buscará entre todas las admitidas.

Saludos.