8 Integración con R↓ gracias a Sweave↓
Sweave, esa maravillosa y libre función que me permite integrar el lenguaje estadístico R con LaTeX [W→] [→W] Conocí esta caracterísita de LaTeX a través de Ángel Martín, muchas gracias .
8.1 Instalando Sweave
8.1.1 Sweave en Linux
- Instalar R [X→] [→X] Para saber más, ver Bioinformatiquillo .
$ sudo aptitude install r-base r-recommended
$ sudo texhash && lyx -x reconfigure
- Instalar las plantillas. Descargamos los archivos que hay en R-Project (nos olvidamos de la carpeta). Copiamos los archivos “literate-*.*” y en nuestra carpeta de usuario (~/.lyx) o en la carpeta de librerías (/usr/share/lyx), dentro del directorio “layouts” (si no son estas, búscalas en Ayuda ▷ Acerca de LyX).
- Modificar el archivo “preferences”. Abrimos el archivo “preferences” que antes descargamos y copiamos el contenido a continuación del que está en nuestra carpeta de usuario (los más precavidos pueden hacer una copia de seguridad antes).
- Reconfigurar LyX (abrimos LyX y le damos a Herramientas ▷ Reconfigurar). Tras lo cual, reiniciamos el programa y listo.
8.1.2 Sweave en Windows [Y→] [→Y] Tutorial creado por Jesús David Mosquera
En primer lugar hay que descargar este archivo zip (cambiar extensión de odt a zip para poder descomprimirlo).
Supongamos que LyX y R se instalaron en “C:\Program Files\LyX X.X.X\” y “C:\Program Files\R\R-X.X.X\ respectivamente” [Z→] [→Z] Las leyendas “X.X.X” significan las versiones de LyX y R que usted instaló en su equipo
A modo de ayuda pongo las rutas al directorio donde se instalaron en mi PC los programas Lyx y R para el momento cuando escribía esta guía.
– Para el LyX: “C:\Program Files\LyX 1.6.4\”
– ara el R: “C:\Program Files\R\R-2.9.1\”
- Copiar los archivo con nombres “MakeSweave” y “Rweave” en la carpeta “C:\Program Files\LyX X.X.X\bin\”
Nota: El archivo “Rweave” contiene una linea donde se especifica la dirección en que se encuentran los archivo “Rterm” y “MakeSweave”, para modificarestas rutas de clic derecho sobre el archivo y luego clic en editar (por defecto se abre con el bloc de notas), lo único que hay que modificar es la version de R o LyX (en caso de que sea necesario). Por favor tenga mucho cuidado al especificar el lugar (ruta o directorio) correcto donde se encuentran estos dos archvios, de lo contrario tendrá problemas a la hora de compilar sus documentos. - Tome el archivo “noweb” y pegue una copia de éste en la siguiente dirección: “C:\Program Files\R\R-X.X.X\share\texmf”, ahora tome el mismo archivo “noweb” y ponga una copia de éste en la dirección que se indica a continuación: “C:\Program Files\MiKTeX 2.7\ tex\latex\noweb\” (Nota: si la carpeta noweb no existe, debe crearla), ahora tome el archivo “Sweave” y ponga una copia en “C:\Program Files\MiKTeX 2.7\tex\latex\sweave\” (Nota: si la carpeta sweave no existe, debe crearla).
Luego vaya a Inicio ▷ Todos los programas ▷ MiKTeX 2.7 ▷ Settings, en la ventana que se abre de click en la pestaña “General”, despues click en “Refresh FBDB”, luego click en “Update Formats” y por último en Aceptar. - Tome el archivo “literate-beamer” y ponga una copia de éste en “C:\Program Files\LyX X.X.X\Resources\layouts”.
- Ahora debe Reconfigurar LyX, mediante Herramientas ▷ Reconfigurar, despues que haya terminado la reconfiguración reinicie LyX. Abra un documento en blanco y luego vaya a Documentos ▷ Configuración y en la lista desplegable de clase del documento mire si dispone de las clases de documento
– “article(Noweb)”
– “book(Noweb)”
– “report(Noweb)” y
– “presentation(beamer + Noweb + Sweave)”.
Si no dispone de estos documentos entonces debe reinstalar LyX y realizar los anteriores pasos nuevamente. - Ahora vaya a Herramientas ▷ Preferencias y de click en Formatos externos y luego en convertidores. luego en la lista desplegable que esta abajo de “Del formato:” busque la opción “Noweb” y en la lista desplegable que esta abajo de “Al formato:” busque la opción “PDF (pdflatex)”, en la casilla correspondiente a “Convertidor” escriba la siguiente linea “Rweave $$i” (sin las comillas) y de click en añadir y seguidamente en Guardar.
- Por último intente obtener alguna salida en formato PDF Probando alguno de los archivos con nombre “Gamma-02″, “Normal-01″, “sweavelyx” ó “Beamer+Sweave”.
Esta pequeña guía fue posible gracias a un tutorial del señor Murat Yildizoglu.
Hasta Pronto… y saludos desde Medellín – Colombia
8.2 Introducir código R
- Seleccionamos una de las plantillas que acabamos de instalar: article , book o report (Sweave noweb).
- Introducimos código R. Del mismo modo con el que introducimos código LaTeX (ERT), metemos nuestro código R. Yo he usado este:
<<fig=T,echo=F,height=4>>= asequence<- seq(from=0,to=5,by=0.1) expnegx2 <- exp(-asequence^2) plot(asequence,expnegx2,type="l",ylab=expression(exp(-z^2)),xlab="z") @
- Compilamos. Ver ▷ PDF [A→] [→A] Atención: con estas plantillas he tenido problemas al compilar con las tildes en la codificación “latin 1″, pero lo solucioné escogiendo “utf8″ en Documento ▷ Configuración ▷ Idiomas ▷ Codificación. .
- Admiramos y reflexionamos. ¡Me encanta LyX! Esto no se pudiera haber realizado si R y LaTeX/LyX fueran proyectos privativos.
Más información: Wiki LyX; RNews: “Using Sweave with LyX” (pdf).
8.3 Utilizar Sweave con la clase Beamer
LaTeX es mucho más que un lenguaje para procesar textos, yo llevamos viendo desde hace mucho tiempo. Acerca de una fantástica prueba de ello ya hemos tratado: la integración con el lenguaje estadístico R gracias a Sweave. Sin embargo, no existe ninguna plantilla funcional para poder usar Sweave con la clase para presentaciones Beamer. Existe una solución, aviso que tiene alguna pega, pero que funciona totalmente bien. Gregor Gorjanc, ha realizado un sencillo manual para ayudarnos a conseguirlo. Consiste en crear con archivo con extensión *.layout y con cualquier nombre, por ejemplo, Beamer-Sweave.layout. El contenido que tiene que llevar es:
# % Do not delete the line below; configure depends on this # DeclareLaTeXClass[beamer, Sweave.sty]{beamer (beamer Sweave noweb)} # # This is a copy of literate-article.layout from LyX, but changed for # Sweave - NoWeb syntax: # - changed noweb.sty to Sweave.sty # - moved preamble to literate-scrap.inc Format 2 Input beamer.layout Input literate-scrap.inc
Guardamos el fichero creado en la carpeta ~/.lyx/layouts de nuestro home (recuerda que es un fichero oculto), y reconfiguramos LyX. Ahora debería de funcionar, debes de tener una clase de documento beamer (beamer Sweave noweb). Si no lo consigues, pásate por el blog de Duncan Golicher, un bloguero que está haciendo un tutorial para R. Aquí te puedes descargar una versión de su carpeta ~/.lyx. Cambia el nombre de tu carpeta actual, y pega la que te has descargado para después reconfigurar.
Dos son los problemas más evidentes que tiene esta plantilla: la imposibilidad de utilizar los entornos de Titulación y la de escalar los archivos de imagen (ni con nuestro editor favorito, yo uso The Gimp). Además, existe otra plantilla diferente que podéis encontrar en este foro, aunque no he conseguido que me funcione. Menos da una piedra y el resultado es muy bueno.
Pingback: Instalar Swave en Windows: LyX como editor estadístico basado en R « Un Bioinformatiquillo
Pingback: datanalytics » Proyectos de R en el Google Summer of Code 2010
Para el problema de utilizar títulos con beamer y sweave, se puede solucionar insertando un par de ERT de tal forma ( lo encontré googleando en R bloggers) http://www.r-bloggers.com/creating-a-presentation-with-latex-beamer-%E2%80%93-getting-started/
1.
\title[titulocorto]{\huge título}
\subtitle[subtitulocorto]{subtitulo}
\author[autorcorto]{autorlargo}
2.
\begin{frame}
\titlepage
\end{frame}
Gracias por el comentario.
Acabo de comprobar que es mejor instalar el paquete noweb y usar por ejemplo book(noweb) que el que hay en la página de R
Gracias por la información.
Saludos.
Pingback: LyX : El poder de LaTex y un editor excelente. | Ubuntizados
Hola, he hecho los pasos pero me pasa lo siguiente que adjunto con una imagen:
windows 7
R 2.12.0
LyX20
Alguien me puede explicar las razones?
Hola Leonardo.
Con LyX 2.0 ha cambiado la manera de trabajar con Sweave. Mira en los comentarios de este post:
https://bioinformatiquillo.wordpress.com/2011/10/22/ejecutando-codigo-r-con-sweave-en-lyx-2-0/
Espero que soluciones el problema.