Sweave: diferència entre les revisions

De wikiTraba
Salta a la navegació Salta a la cerca
Línia 40: Línia 40:
* Comipilar el documento '''.tex''' para obtener, como es habitual en [[Latex|LaTeX]], archivos '''.dvi''', '''.ps''' o '''.pdf'''.
* Comipilar el documento '''.tex''' para obtener, como es habitual en [[Latex|LaTeX]], archivos '''.dvi''', '''.ps''' o '''.pdf'''.


=== [[Emacs]] bajo GNU/Linux ===
 
=== Procesamiento con [[Emacs]] bajo GNU/Linux ===


Antes de poder procesar documentos de Sweave hay que realizar el siguiente procedimiento, que deberá llevarse a cabo sólo '''una vez''' en cada ordenador:
Antes de poder procesar documentos de Sweave hay que realizar el siguiente procedimiento, que deberá llevarse a cabo sólo '''una vez''' en cada ordenador:
Línia 58: Línia 59:
Así, para cada proyecto Sweave que tengamos, deberemos tener un directorio indepnediente con dos archivos: '''nombre.Rnw''' y un Makefile que en las dos primeras líneas contenga el nombre del archivo '''.Rnw'''.
Así, para cada proyecto Sweave que tengamos, deberemos tener un directorio indepnediente con dos archivos: '''nombre.Rnw''' y un Makefile que en las dos primeras líneas contenga el nombre del archivo '''.Rnw'''.


=== [[Emacs]] o [http://www.winedt.com/ WinEdt] bajo M$ ===
 
=== Procesamiento con [[Emacs]] o [http://www.winedt.com/ WinEdt] bajo M$ ===


== Enlaces de interés ==
== Enlaces de interés ==

Revisió del 21:02, 5 juny 2005

Sweave se inscribe en lo que se ha venido a denominar Literate Statistics. El objetivo es tener en un único fichero de sintaxis el texto de LaTeX y el código de R entremezclados. Cuando se procesa el código, el output mezcla automáticamente el texto de LaTeX con las tablas y otros objetos de R, lo que facilita enormemente algunas tareas como la generación periódica de informes o de textos cuando se cambian, aunque sea mínimamente, los datos de origen.

Requerimientos

  • Una distribución LaTeX instalada y funcionando (teTex en GNU/Linux o MiKTeX en M$).
  • Tener instalado y funcionando el sistema R.
  • Un editor de sintaxis, preferentemente Emacs aunque bajo M$ se puede usar también WinEdt.


Sintaxis básica

Los archivos de sintaxis de Sweave deben guardarse con la extensión .Rnw.

La mayor parte del fichero tendrá la apariencia de un archivo de LaTeX (incluidos los encabezados), aunque con la particularidad de contener chunks, que pueden entenderse como partes diferenciadas de la sintaxis correspondientes a distintos tipos de código.

Los chunks de texto, que serán procesados por LaTeX, deben empezar por el signo @:

@
Aquí empieza el texto

En cambio, los chunks del código que debe ser evaluado por R deben empezar por la cadena <<argumentos>>=:

<<Argumento1=ValorDelArgumento1, Argumento2=ValorDelArgumento2, ...>>=
Código de R
Chunks de texto: @


Un ejemplo

Procesamiento

El procesamiento de un archivo de Sweave se compone básicamente de dos pasos:

  • La función Sweave() de R, que evaluará los chunks con código de R y convertirá el archivo .Rnw a un archivo .tex convencional.
  • Comipilar el documento .tex para obtener, como es habitual en LaTeX, archivos .dvi, .ps o .pdf.


Procesamiento con Emacs bajo GNU/Linux

Antes de poder procesar documentos de Sweave hay que realizar el siguiente procedimiento, que deberá llevarse a cabo sólo una vez en cada ordenador:

  • Descargar este shell script, copiarlo a la ubicación /usr/local/bin/ y desde una ventana de terminal ejecutar:
sudo chmod +x /usr/local/bin/Sweave.sh

Una vez hecho esto, ya estamos en disposición de compilar documentos Sweave. Para ello, debemos descargar este archivo Makefile y ediarlo para sustituir la expresión:

nombrearchivo

presente en las dos primeras líneas, por el nombre de nuestro fichero Sweave sin la extensión .Rnw.

El fichero Makefile debe situarse en el mismo directorio donde tengamos el archivo .Rnw.

Así, para cada proyecto Sweave que tengamos, deberemos tener un directorio indepnediente con dos archivos: nombre.Rnw y un Makefile que en las dos primeras líneas contenga el nombre del archivo .Rnw.


Procesamiento con Emacs o WinEdt bajo M$

Enlaces de interés

Rnews: Sweave Parte I

Rnews: Sweave parte II: Vignettes



Otro enfoque, este toma los nombres del buffer