Está en la página 1de 10

A Generacin automtica de reportes con R y L TEX o a

A Automatic report generation with R and L TEX

Mario Alfonso Morales Rivera*

Resumen R es un lenguaje y entorno para calculo estad stico y grcos. Es un proyecto GNU similar al a lenguaje y entorno S que fue desarrollado en los laboratorios Bell por John Chambers y colegas. R puede considerarse como otra implementacin del lenguaje S. o R proporciona una amplia variedad de tcnicas estad e sticas y grcas y es altamente extendible. a A menudo el lenguaje S es el vinculo escogido por investigadores en metodolog estad a stica, y R proporciona una ruta de cdigo abierto para la participacin en esa actividad (R Development Core o o Team 2006). A L TEX es un sistema de preparacin de documentos para composicin de texto de alta calidad. o o Este es usado a menudo para escribir medianos a grandes documentos cient cos y tcnicos, pero e puede usarse para casi cualquier tipo de publicacin. o A L TEX fue desarrollado en 1985 por Leslie Lamport, y ahora lo mantiene y desarrolla el proyecto A X3. Al igual que R, L T X es software libre y en este momento es el formato de documento ms A L TE a E empleado entre matemticos y estad a sticos (The LaTeX3 project 2006). La funcin Sweave() de R proporciona un marco exible para mezclar texto y cdigo R para la o o generacin automtica de documentos. Un archivo fuente simple contiene el texto de documentacin o a o y el cdigo R, los cuales son entrelazados dentro de un documento nal que contiene el texto de o documentacin junto con el cdigo R y/o la salida del cdigo (texto, grcos). El cdigo R del anlisis o o o a o a A completo es incrustado dentro de un documento L TEX usando la sintaxis noweb (Ramsey, 1998). Por A tanto, todo el poder de L TEX (para composicin de texto de alta calidad) y de R (para anlisis de o a datos) puede usarse simultneamente (Leisch 2005). a Este tutorial pretende dar ejemplos concretos acerca de la forma como trabaja Sweave, incluyendo A la conguracin del sistema L TEX. o
A Palabras Claves: R, L TEX, Sweave, noweb

Abstract R is a language and environment for statistical computing and graphics. It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories by John Chambers and colleagues. R can be considered as a dierent implementation of S. R provides a wide variety of statistical and graphical techniques, and is highly extensible. The S language is often the vehicle of choice for research in statistical methodology, and R provides an Open Source route to participation in that activity (R Development Core Team 2006). A L TEX is a document preparation system for high-quality typesetting. It is most often used for medium-to-large technical or scientic documents, but it can be used for almost any form of publishing. It was rst developed in 1985 by Leslie Lamport, and is now being maintained and developed A by the LaTeX3 project. Like R, L TEX is free software and it is the most commonly used document format among mathematicians and statisticians at the present time (The LaTeX3 project 2006). The function Sweave() from R provides a exible framework for mixing text and R code for automatic document generation. A single source le contains both documentation text and R code, which are then woven into a nal document containing, the documentation text together with the R code and/or the output of the code (text, graphs). The S code of the complete analysis is embedded
* Profesor asistente, Departamento de Matemticas y Estad a stica, Universidad de Crdoba o mmorales@sinu.unicordoba.edu.co

3
A A into a L TEX document using the noweb syntax (Ramsey, 1998). Hence, the full power of L TEX (for high-quality typesetting) and R (for data analysis) can be used simultaneously (Leisch 2005). A This tutorial wants to give concrete examples about of how Sweave work, including the L TEX system conguration. A Keywords: R, L TEX, Sweave, noweb.

1.

Introduccin o

El anlisis estad a stico tiene dos etapas bien diferenciadas. Por una parte est el anlisis de los datos, que a a involucra la utilizacin de un paquete (software) estad o stico para producir n meros, tablas y grcos y u a por otra est la escritura del informe nal (reporte) que requiere de la utilizacin de un procesador de a o texto. La mayor de los paquetes estad a sticos tienen la opcin de guardar sus salidas (resultados) en archivos o con formato .doc, .rtf o .txt, los cuales permiten usar un procesador de texto como Microsoft Word u Open Oce para abrirlo, as que copiando y pegando, se construye el reporte nal con los comentarios del anlisis. a A Si deseamos usar L TEX 1 para la composicin del texto del reporte o art o culo, encontramos que la metodologa de copiar y pegar resulta poco eciente, por varias razones:
A L TEX tiene formato muy particular para la inclusin de tablas. o A L TEX tiene un comando especial para la inclusin de grcos, con opciones que var seg n el o a an u formato del archivo a importar. A L TEX ignora en el archivo fuente cualquier espacio que siga a otro espacio; es decir un espacio es lo mismo que 10 espacios o 100 espacios (Rodrigo De Castro Korgi 2003) A Las salidas de los paquetes usan caracteres como %, # y & entre otros, que son reservados de L TEX y si no se emplean adecuadamente generan errores al momento de compilar A Si insistimos en usar L TEX y el mtodo copiarpegar para la edicin del reporte, debemos estar preparados e o para perder mucho tiempo dndole formato a las tablas y salidas del paquete estad a stico para obtener A un documento de alta calidad en cuanto a su presentacin y esttica. La losof de L TEX es: usted se o e a dedica a la produccin intelectual, y no se preocupa por la presentacin del documento, de eso se encarga o o A L TEX. La prdida de tiempo dndole formato al texto y tablas de un anlisis estad e a a stico va totalmente en contra de este concepto. R y S-PLUS son dos herramientas2 ampliamente usadas por la comunidad estad stica para el anlisis de a datos y produccin de grcos de alta calidad. Una caracter o a stica importante de estos dos entornos es su A alta compatibilidad con L TEX. Los creadores del lenguaje S, el equipo de desarrollo de R y los usuarios que escriben extensiones (librer as), se preocupan por facilitar la tarea de inclusin de los resultados del o A anlisis de los datos y los grcos en documentos L TEX, es as como los usuarios de R contamos con a a A el entorno grco pictex que permite generar directamente, desde R, grcos en el cdigo de L TEX; la a a o A librer xtable que permite generar el cdigo L TEX para tablas, marcos de datos y matrices de tal forma a o que funcione copiarpegar, la funcin latex() de la librer Hmisc que convierte objetos de R a cdigo o a o A L TEX y la funcin Sweave(), objeto de este tutorial, que toma un archivo que contiene el texto con los o comentarios del anlisis, formulas, el cdigo de R usado para realizar los clculos y generar los grcos, a o a a y entrega un archivo plano con extensin .tex en el que deja sin modicar todo lo que tiene que ver con o frmulas y texto y adiciona: las salidas de R, el cdigo usado (opcional) y el comando para la insercin de o o o
1 El uso de L T X para la composicin de texto se hace indispensable (por no decir obligatorio) cuando, por ejemplo, en A o E el ejercicio de la docencia en estad stica se desean escribir notas de clases o tutoriales que incluyen texto, frmulas, salidas o de un programa de anlisis de datos, como tablas y grcos, el cdigo usado para obtener dichas salidas y mucha referencia a a o cruzada. 2 R se puede descargar gratuitamente de http://www.r-project.org/, S-PLUS es comercial y su distribuidor autorizado para Amrica Latina es MS MIAMI, http://www.msmiami.com/ e

Mario A. Morales R.

A los grcos. El archivo .tex se compila con L TEX y se obtiene un documento de alta calidad sin prdida a e A de tiempo. Sweave es compatible con la losof de L TEX en el sentido que nos permite dedicar nuestro a escaso y valioso tiempo a planear el anlisis, escribir el cdigo (script ) para obtener clculos y grcos y a o a a A a comentar los resultados. De la presentacin del documento se encarga Sweave junto con L TEX. o Se enfatiza la frase sin prdida de tiempo, porque en realidad si la hay. Los que inician el aprendizaje de e A L TEX y de R tienen que invertir una cantidad considerable de tiempo para empezar a tener resultados aceptables, Sweave no es la excepcin. Con este documento se ofrece un tutorial para que el lector reduzca o considerablemente el tiempo de aprendizaje de Sweave, de tal forma que el interesado no se frustre como A ocurre con muchos que intentan aprender a usar L TEX y R sin ninguna asistencia adicional.

2.

Cmo funciona Sweave? o

Sweave es un paquete de R escrito por Friedrich Leisch3 que permite al investigador entrelazar cdigo R en o A un documento L TEX usando las sintaxis noweb. Noweb es una herramienta de programacin literal que o permite combinar cdigo fuente de programas y la documentacin correspondiente dentro de un archivo o o simple. Un archivo noweb contiene una secuencia de segmentos de cdigo y documentacin, los cuales o o reciben el nombre de chunks (Leisch 2005). doc.pdf

Cdigo R o

ch un ks

doc.Rnw
de C od igo

doc.tex Texto Frmulas o Salida de R includegraphics Cdigo de R o doc.dvi

Noweb
ks c Do de

Texto Frmulas o Cdigo de R o

Sweave()

A L TEX

Texto Frmulas o

un ch

doc.ps Figura 1: Forma de proceder con Sweave

Para la generacin automtica de un informe o reporte, se procede como se muestra en la gura 1. El o a cdigo de R se mezcla con el texto usando chunks de cdigo y chunks de documentacin de acuerdo con o o o la sintaxis noweb, este archivo se guarda como doc.Rnw4. Desde la linea de comandos de R se ejecuta la orden > Sweave(doc.Rnw) Si no ocurren errores de sintaxis, Sweave genera el archivo doc.tex que contiene la documentacin, la o salida del cdigo R que estaba en los chunks de cdigo y/o el cdigo mismo, esto lo hace dentro de o o o A los entornos L TEX Sinput y Soutput, respectivamente. Si el cdigo genera grcos y se tiene la opcin o a o fig=true (seccin 3.2), Sweave coloca en el archivo doc.tex el comando \includegraphics{} apropiado. o A El archivo doc.tex se compila con L TEX para obtener, nalmente el archivo doc.dvi y opcionalmente, archivos doc.pdf y/o doc.ps.
3 http://www.ci.tuwien.ac.at/~leisch/ 4 Otras

extensiones que se pueden usar son: .nw .rnw, .snw y .Snw

5 Hay que tener en cuenta que Sweave deja sin modicar todo lo que est fuera de los chunks, as que el e A resto del documento .Rnw debe respetar todo lo que tiene que ver con la sintaxis de L TEX. Esta forma de proceder tiene varias ventajas: Si se hace alg n cambio en los datos, solo tenemos que modicar el archivo doc.Rnw y volver a u correr el cdigo, ejecutando nuevamente la orden Sweave(doc.Rnw) y el reporte queda actualizado o automticamente. a
A Sweave puede usarse con otras librer de R como xtable que produce resultados en cdigo L TEX. as o

Sweave produce grcos en formato PostScript y/o PDF y agrega el comando \includegraphics{} a apropiado ahorrndonos la tarea de hacerlo manualmente. a Se reduce de la posibilidad de error porque no hay necesidad de copiar y pagar manualmente la salida de R al documento .tex.

3.

Ejemplos

En esta seccin se discuten las principales opciones disponibles para los chunks de cdigo a travs de o o e ejemplos. Para los ejemplos se usa el marco de datos PlantGrowth que pertenece a los datos de ejemplos de R, y contiene los resultados de un experimento agr cola para comparar crecimientos de plantas (medido por el peso h medo) obtenidos bajo un control y dos condiciones diferentes de tratamientos. u A En los ejemplos no se comenta el cdigo de R ni el de L TEX porque se asume que el lector est familiarizado o a 5 con ellos . Solo se comenta lo referente a los chunks y sus diferentes opciones.

3.1.

Inclusin de salida y cdigo de R o o

El recuadro de la izquierda, en la gura 2, muestra la sintaxis ms simple de un chunk. La l a nea 1 es el inicio del chunk de cdigo, la l o nea 4 indica su nal y al mismo tiempo el inicio de un chunk de documentacin. Cualquier texto que quede despus del signo = (en la misma l o e nea 1) es ignorado por R al momento de ejecutar el cdigo, es decir, se asume como un comentario. o Cuando se corre Sweave() sobre el archivo .Rnw que contiene este cdigo, en el archivo .tex que se genera, o se reemplaza el chunk por el texto que se muestra en el centro de la gura 2. Los entornos Schunk, Sinput A y Soutput, estn denidos en el paquete Sweave.sty de L TEX, cuya instalacin se discute en la seccin a o o 4. A la derecha, en la gura 2 se muestra lo que se obtiene denitivamente en el documento .dvi. Por defecto Sweave coloca el cdigo y la salida, pero eso no siempre es deseable ya que si se est escribiendo o a un informe, es casi seguro que el lector no estar interesado en conocer el cdigo de programacin usado a o o para hacer clculos, obtener tablas y los grcos; pero si escribimos unas notas de clase o un tutorial, a a quizs estemos interesados en mostrar a nuestros estudiantes el cdigo utilizado para una tarea espec a o ca sin mostrar los resultados. Sweave prev todas esas posibilidades y da al usuario total control a travs de e e las opciones que se escriben dentro de < < > >=, las principales se explican a continuacin: o

<<echo=false>>= data(PlantGrowth) summary(PlantGrowth) @

Le indica a Sweave que no queremos el cdigo en el documento nal, de o esta forma solo coloca en el documento .tex las las 1 y 6 a 15 (gura 2, centro). echo=false se puede cambiar por echo=FALSE o por echo=F con los mismos resultados.

5 Si no es as un buen comienzo es (W N Venables and D M Smith and R Development Core 2004) para R y (Rodrigo , A De Castro Korgi 2003) para L TEX.

Mario A. Morales R.

doc.Rnw <<>>= data(PlantGrowth) summary(PlantGrowth) @


1 2 3 4

doc.tex \begin{Schunk} \begin{Sinput} > data(PlantGrowth) > summary(PlantGrowth) \end{Sinput} \begin{Soutput} weight group Min. :3.590 ctrl:10 1st Qu.:4.550 trt1:10 Median :5.155 trt2:10 Mean :5.073 3rd Qu.:5.530 Max. :6.310 \end{Soutput} \end{Schunk}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

doc.dvi > data(PlantGrowth) > summary(PlantGrowth) weight Min. :3.590 1st Qu.:4.550 Median :5.155 Mean :5.073 3rd Qu.:5.530 Max. :6.310 group ctrl:10 trt1:10 trt2:10

Figura 2: Un chunk de cdigo (izquierda), el resultado despus de ejecutar Sweave(doc.Rnw) (centro) y o e como queda en el documento nal (derecha)

<<results=hide>>= data(PlantGrowth) summary(PlantGrowth) @

Le indica a Sweave que en el documento nal no queremos la salida, slo o el cdigo, de esa forma aparecen en el documento .tex las las 1 a 5 y o la 15 (gura 2, centro). Otros dos posibles valores son results=tex que se discutir en la seccin 3.3 y results=verbatim que es la opcin por a o o defecto.

<<results=hide,echo=false>>= data(PlantGrowth) summary(PlantGrowth) @

Omite tanto la salida como el cdigo. En el documento .tex no o aparece nada en esa posicin, pero R carga los datos y realiza el o clculo de las estad a sticas de resumen. Esa opcin es util cuano do hacemos lectura de datos, denimos funciones o se inicializan variables que sern usadas en los clculos que siguen. a a

3.2.

Inclusin de grcos o a

Para la inclusin automtica de grcos se usa la opcin fig=true en el chunk que crea el grco, veamos o a a o a un ejemplo: doc.Rnw \begin{figure}[ht] 1 doc.tex \centering 2 \begin{figure}[ht] 1 <<echo=false,fig=true>>= 3 \centering 2 boxplot(weight~group,ylab="Peso") 4 \includegraphics{doc-003} 3 @ 5 \caption{Boxplot}\label{boxplot} 4 \caption{Boxplot}\label{boxplot} 6 \end{figure} 5 \end{figure} 7 En las las 3 a 5 del recuadro de la izquierda se encuentra el chunk que contiene el cdigo R para hacer el o A grco. En el recuadro de la derecha, el chunk se reemplaza por el cdigo L TEX \includegraphics{doc-003} a o

7 (la 3), que inserta, en el documento nal, el archivo doc-003.ps. El nombre del archivo grco doc-003.ps a lo toma del nombre del archivo fuente doc.Rnw y el n mero corresponde al del chunk que produjo el grco u a (en este caso el tercero). El grco creado no se inserta en este documento para ahorrar espacio. a Es posible controlar el alto y ancho del grco creado por medio de las opciones width y height, por a defecto estos dos parmetros estn jados en 6 pulgadas.6 a a \begin{figure}[ht] \centering <<echo=false,fig=true,width=7,height=8>>= boxplot(weight~group,ylab="Peso") @ \caption{Boxplot}\label{boxplot} \end{figure}

Crea el Boxplot en un dispositivo grco con 7 pula gadas de ancho y 8 de alto.

A Sweave guarda, por defecto, el mismo grco en formato PDF y PostScript. Si se compila con L TEX a A se inserta el archivo PostScript y si se compila con PDFL TEX se inserta el archivo PDF, si el usuario A no quiere crear el grco en formato PDF (porque siempre compila con L TEX), debe insertar la opcin a o pdf=FALSE, de igual forma, si no quiere crear el archivo en formato PostScript debe insertar la opcin o eps=FALSE.

3.3.

A Inclusin de tablas en formato LTEX o

Podemos combinar la librer xtable de R junto con la opcin results=tex para insertar tablas en a o A formato L TEX directamente, veamos un ejemplo:

<<echo=F,results=tex>>= library(xtable) g<-lm(weight~group,data=PlantGrowth) xtable(anova(g),"Anlisis de varianza") a @

A En el archivo .tex queda el cdigo L TEX que o genera la tabla 1.

group Residuals

Df 2 27

Sum Sq 3.77 10.49

Mean Sq 1.88 0.39

F value 4.85

Pr(>F) 0.0159

Tabla 1: Anlisis de varianza a

3.4.

Insercin de nmeros en el texto o u


doc.Rnw

Es posible insertar automticamente n meros en el texto usando la funcin \Sexpr, de la siguiente forma: a u o <<echo=F>>= sw<-shapiro.test(residuals(g))
6 Esas dimensiones son para el dispositivo grco de R, ellas no afectan el tama o de las guras en el archivo a n A .dvi. El paquete Sweave.sty ja el ancho de las guras que L TEX inserta en un 80 % del parmetro \textwidth, a por medio del comando \setkeys{Gin}{width=0.8\textwidth}, as por ejemplo, en este documento, que tiene la linea \setlength{\textwidth}{16cm} en el prembulo, se garantiza que los grcos insertados no tendrn un ancho mayor que a a a 12.8 cm.

8 @ El valor del estadstico de Shapiro--Wilks es con $p=\Sexpr{round(sw$p.value,3)}$ por tanto normalidad de los errores.

Mario A. Morales R.

$W=\Sexpr{round(sw$statistic,3)}$ no rechazamos la hiptesis de o

Sweave coloca en el archivo doc.tex lo siguiente: doc.tex El valor del estadstico de Shapiro--Wilks es $W=0.966$ con $p=0.438$ por tanto no rechazamos la hiptesis de normalidad de los errores. o y en el archivo doc.dvi queda as : El valor del estad stico de ShapiroWilks es W = 0.966 con p = 0.438 por tanto no rechazamos la hiptesis de normalidad de los errores. o

3.5.

Reutilizacin de cdigo o o

Un chunk puede reutilizarse en otro que se dena posteriormente, para eso es necesario usar la opcin o label=nombre, para asignar un nombre al cdigo que servir para el llamado posterior. Se ilustra esto en o a el siguiente ejemplo. Chunk a Chunk b <<a,echo=false>>= <<b,echo=false>>= sigma2<-summary(g)$sigma^2 est<-t(q)%*%b XtX<-crossprod(model.matrix(g)) var<-t(q)%*%solve(XtX)%*%q*sigma2 b<-matrix(coef(g)) @ @ Chunk d Chunk c <<d,echo=false>>= <<c,echo=false>>= q<-matrix(c(0,-1,-1)) q<-matrix(c(0,0,1)) <<b>> <<b>> @ @ El Chunk b se est utilizando en el Chunk c para obtener la estimacin de la funcin paramtrica 3 1 7 a o o e y su varianza. Lo mismo se hace en el Chunk d para la funcin 21 2 3 . o En estos ejemplos el nombre de los chunks es lo primero que aparece dentro de < < > >, esto siempre debe ser as a menos que el nombre se asigne mediante la opcin label=nombre, en cuyo caso puede ir o en cualquier posicin. o La asignacin de nombre a los chunks, adems de la reutilizacin, permite denir cdigo en un lugar del o a o o documento y obtener su resultado en otro, el siguiente ejemplo ilustra esa situacin. o La creacin o <<label=figura2,echo=false,fig=false>>= plot(g,which=2) @ El llamado \begin{figure}[ht] <<echo=false,results=hide,fig=true>>= <<figura2>> @ \caption{Normal Q--Q plot }\label{qqplot} \end{figure}
1 2 3 4 5 6

El chunk de cdigo de la izquierda contiene el cdigo de R que crea el Normal Q-Q plot, a ste se le asigna o o e el nombre gura2 por medio de la opcin label=figura2. En la l o nea 3 del cdigo de la derecha se hace o
7 Para obtener una solucin de las ecuaciones normales, R hace una reparametrizacin, para lo cual impone la restriccin o o o 0 = 0 1

9 el llamado, el cual puede estar en cualquier lugar del documento .Rnw, despus de la creacin, en ese sitio e o A aparecer el comando \includegraphics{} de L TEX que inserta el grco. a a Los nombres de los chunks tambin se utilizan cuando se recupera el cdigo R de un archivo .Rnw, con la e o funcin Stangle, esto se estudiar en la seccin 3.6. o a o

3.6.

Recuperacin de cdigo o o

Si desde la consola de R ejecutamos la orden > Stangle(doc.Rnw) R recupera del archivo doc.Rnw el cdigo que est dentro de los chunk y los guarda en un archivo de o a extension .r, de la siguiente forma: Para cada chunk que tengan la opcin split=true, crea un archivo o doc-nombre.r, si el chunk tiene nombre, de lo contrario nombre se reemplaza por su n mero. Si hay u varios chunks con el mismo nombre, todos se ubican en el mismo archivo. Por otra parte los chunk que tengan split=false (opcin por defecto) se ubican en el archivo doc.r. o

3.7.

Asignacin global de opciones. o

Otra forma de especicar las opciones para controlar la manera como se transeren los chunks y sus salidas (texto y guras) del archivo .Rnw al archivo .tex, es mediante el comando \SweaveOpts{}, el cual modica las opciones por defecto a partir del lugar donde aparece. Por ejemplo, si queremos jar para todo el documento la opcin echo=false, agregamos la linea \SweaveOpts{echo=false} al inicio, de esa o forma no es necesario hacerlo en cada uno de los chunks. En cualquier lugar del documento podemos volver a activar echo=true mediante \SweaveOpts{echo=true}. Se puede jar ms de una opcin separndolas a o a por comas, por ejemplo \SweaveOpts{echo=true,pdf=false,fig=true}.

4.

A Conguracin de L TEX o

En principio R y Sweave estn congurados para que el usuario reciba el archivo .tex y sin hacer nada a A ms, compile con L TEX para obtener el documento .dvi, sin embargo eso es cierto slo para usuarios a o de sistemas Unix (como Linux, por ejemplo), los usuarios de sistemas Windows, tienen que realizar una tarea adicional de conguracin que se explica a continuacin. o o

4.1.

Instalacin del paquete Sweave.sty o

Cuando Sweave toma el archivo .Rnw y no encuentra en el prembulo la linea \usepackage{Sweave}, a agrega automticamente en el documento .tex la l a nea 8 \usepackage{C:/ARCHIV~1/R/R-22~1.0/share/texmf/Sweave}
A que deber indicarle a L TEX dnde encontrar el paquete Sweave.sty, que es donde se denen los entornos a o Schunk, Sinput y Soutput necesarios para la presentacin de las salidas y el cdigo de R. o o Al intentar compilar un documento con esa l nea en el prembulo, se genera un error de compilacin, eso a o A se debe a que L TEX no soporta espacios en blanco en la denicin de las rutas de los archivos. Hay tres o soluciones posibles para el inconveniente:9

1. (Recomendada) Instalar manualmente el paquete Sweave.sty. Para eso se debe crear una carpeta con el nombre Sweave en la ruta C:\texmf\tex\latex y copiar en ella el archivo Sweave.sty que se encuentra en la carpeta ...\R\R-2.2.0\share\texmf. Luego se debe actualizar la base de datos de los nombres de archivos instalados, en el caso se MiKTEX se hace as :
8 Puede 9 Se

variar de acuerdo con la conguracin del sistema. o asume que se est usando MiKTEX con la instalacin por defecto. a o

10 Inicio >Todos los programas.

Mario A. Morales R.

MiKTEX >MiKTEX options. En la pesta a General en el recuadro le name database, click en Refresh Now. n Espere unos pocos segundos y click en aceptar. Al hacerlo de esa forma se tiene la ventaja que una vez realizado el procedimiento, no tenemos que preocuparnos ms por ese asunto. a 2. (Poco prctica) Copiar el archivo Sweave.sty en la misma carpeta donde tiene el archivo .tex. a Esta opcin tiene la desventaja que si se est trabajando en varios proyectos, en carpetas diferentes, o a se requiere una copia del archivo por cada uno, y cada vez que inicia un nuevo proyecto tendr que a repetir el proceso de copia. 3. Instale R en una ruta sin espacios en blanco, por ejemplo en C:\R\R-2.2.0 Si se eligi la solucin 1 o 2 dadas en la seccin anterior, es necesario agregar manualmente, en el prembulo o o o a del documento .Rnw la linea \usepackage{Sweave}, que invoca al paquete Sweave.sty.

5.

Un ejemplo completo.

El siguiente es un ejemplo de cmo debe quedar denitivamente un archivo .Rnw. El documento .tex y o el .dvi no se muestran por falta de espacio. \documentclass[12pt]{report} \usepackage{amsmath,amsthm,amsfonts,amssymb} \usepackage[latin1]{inputenc} \usepackage[spanish,activeacute]{babel} \usepackage{Sweave} \SweaveOpts{pdf=false} \begin{document} En el anlisis exploratorio de los datos calculamos las estadsticas a de resumen para cada grupo, las cuales se muestran en la siguiente salida de \texttt{R}. <<echo=false>>= attach(PlantGrowth) by(weight,group,summary) @ En la figura \ref{boxplot} se muestra el Boxplot de peso para cada grupo, el cual muestra que no parece haber problemas con el supuesto de homogeneidad de la varianza de los grupos. \begin{figure}[ht] \centering <<echo=false,fig=true,width=8,height=8>>= boxplot(weight~group,ylab="Peso") @ \caption{Boxplot}\label{boxplot} \end{figure} A continuacin ajustamos el modelo de una via de clasificacin. En o o la tabla \ref{anova} se muestra el anlisis de de varianza. a

11

<<echo=F,results=tex>>= g<-lm(weight~group,data=PlantGrowth) xtable(anova(g),"Anlisis de varianza","anova") a @ El p valor de la prueba ($p=\Sexpr{round(anova(g)$"Pr(>F)"[1],4)}$) indica que los efectos de los tratamientos difieren. <<echo=true>>= sw<-shapiro.test(residuals(g)) @ El valor del estadstico de Shapiro--Wilks es $W=\Sexpr{round(sw$statistic,3)}$ con $p=\Sexpr{round(sw$p.value,3)}$ por tanto se verifica el supuesto de normalidad. \end{document}

6.

Conclusin o

En este documento se ha mostrado un panorama general del funcionamiento de Sweave y su versatilidad, para mayores detalles debe consultarse (Leisch 2005). Con este tutorial, el lector que posea experiencia A con L TEX y R puede empezar a producir documentos con cierto nivel de calidad en poco tiempo. Se espera que los lectores no familiarizados con estos dos paquetes se hayan percatado de lo prctico que a resulta esta forma de escribir informes y entiendan que cualquier cantidad de tiempo que se gaste en su aprendizaje, debe tomarse como una inversin que ser recuperada con creces posteriormente. Tnganse o a e A en cuenta que L TEX y R son dos herramientas poderosas y utiles distribuidas bajo Licencia Pblica u General y por tanto se convierten en una buena opcin para la ense anza, dado que los estudiantes, las o n universidades y centros de investigacin pueden adquirirlos sin ning n costo. o u

Referencias
Leisch, F. (2005), Sweave User Manual.
A Neely, W. W. (n.d.), Using Sweave For Integrating R and L TEX.

R Development Core Team (2006), R: A Language and Environment for Statistical Computing, R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0.
A Rodrigo De Castro Korgi (2003), El Universo L TEX, Universidad Nacional de Colombia.

Rudlo, P. (2005), An Introduction to Sweave. The LaTeX3 project (2006), The LaTeX3 project, http://www.latex-project.org/. W N Venables and D M Smith and R Development Core (2004), An Introduction to R, Network Theory Limited.

También podría gustarte