Desde R hasta Word (sin usar Word)

Por razones que se me escapan, tal vez alguien pueda estar interesado en producir un documento con el programa Word. Y tal vez ese documento deba incluir algún tipo de análisis estadístico. En esta entrada voy a describir cómo es posible hacerlo sin usar Word y haciendo los cálculos estadísticos con R, a través de RStudio. La forma de hacerlo es tal que será muy fácil actualizar el documento si cambian los datos (y por lo tanto los gráficos, resultados, tablas, etc. del análisis estadístico).  Para ello, tenemos que utilizar una versión reciente de RStudio. Las opciones que vamos a usar fueron incluidas en una actualización de junio de 2014. También es necesario instalar el paquete knitr.

Tenemos que seguir los pasos siguientes:

  • El primer paso es crear un fichero nuevo en RStudio del tipo R markdown (menú File, New File, R markdown…) y elegir Word como formato de salida (es interesante fijarse en que hay otras muchas opciones, como por ejemplo crear un documento pdf directamente, un html, o una presentación en lugar de un documento):Word1
  • Una vez pulsemos OK se abre un editor en el que podemos escribir usando la sintaxis de markdown (lo cual es totalmente elemental -que nadie se desanime si no ha oído hablar de markdown- basta mirar por ejemplo esta chuleta o esta página). En el propio editor aparece un texto a modo de ejemplo que podemos sustituir por el texto que nosotros queramos. El fichero que se genera tendrá una extensión .Rmd
  •  Imaginemos ahora que queremos incluir en nuestro documento un histograma de las notas medias (año 2009) de los colegios en una prueba que realizó la Comunidad de Madrid a los alumnos de sexto de primaria. Los datos se encuentran aquí. Para ello, no incluiremos en el documento el histograma, sino el código de R que lo produce. Usaremos el botón Chunks que aparece en la parte superior derecha del editor:Word2Se abren y cierran unas comillas entre las que podemos incluir el código de R que sea necesario. Como no queremos que aparezca el código sino solo su resultado, usamos la opción echo=FALSE, es decir, escribimos {r echo=FALSE} en lugar de {r}. En el ejemplo que comentábamos escribiremos:
    ```{r echo=FALSE}
    datos <- read.table('http://www.uam.es/joser.berrendero/datos/notas.txt', header = TRUE, dec=',')$nota09
    hist(datos, main='Histograma', xlab='Notas 2009', ylab='Frecuencias')
    ```
    
  • La primera línea baja los datos y los importa a R y la segunda representa el histograma.
  • Otra posibilidad es incluir en cualquier línea un comando de R. Si escribimos, por ejemplo,  la media fue `r mean(datos)`, en lugar de la expresión entrecomillada aparecerá el valor de la media de la variable datos.
  • Finalmente, para producir el fichero con extensión .docx basta usar el botón knit Word. Si todo ha ido bien, se abrirá Word y veremos el documento generado (por supuesto, necesitamos tener Word instalado en nuestro ordenador para ver el resultado).

El carácter dinámico del documento resultante es extremadamente útil. Si posteriormente queremos actualizar el informe para los datos de 2010, basta cambiar una línea del código de R y automáticamente se actualizarán todos los gráficos y medidas estadísticas. Aquí tenéis un ejemplo de un documento Rmd muy sencillo (que podéis abrir con RStudio y puede servir de plantilla para escribir vuestro propio documento) y aquí el correspondiente fichero .docx generado.

 

Anuncios
Esta entrada fue publicada en estadística, R y etiquetada , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s