El paquete odfWeave proporciona las funciones y el entorno para escribir informes automáticos en un formato libre y gratuito (como R), que se puede modificar a posteriori de forma muy sencilla y que permite su exportación a otros formatos como html o PDF.
La idea consiste en escribir un archivo ODF con un programa editor como OpenOffice con comentarios o explicaciones y código R para generar resultados y gráficos. La función odfWeave procesa ese archivo y nos entrega el documento ODF con el mismo texto y los resultados numéricos o gráficos insertados. Ese documento se puede modificar añadiendo otros elementos: vínculos, fotografías, encabezados y piés de página, etc. y finalmente imprimir o exportar.
Por ahora sólo funciona con documentos de texto, pero más adelante se puede ampliar a presentaciones y hojas de cálculo.
Veamos un ejemplo.
El documento de nombre ejemplo.odt contiene el siguiente texto:
Ejemplo
En este documento vamos a probar el paquete odfWeave.
Primero cargamos los datos de forma oculta para el documento final.
<<
# Los datos son
coches <- mtcars[ ,1:6]
@
Los datos a estudiar contienen \Sexpr{dim(coches)[2]} variables medidas sobre \Sexpr{dim(coches)[1]} coches.
Podemos insertar una tabla resumen de los datos:
<<
medias <- apply(coches,2,mean)
odfTable(medias, horizontal = TRUE)
@
También podemos añadir algún bonito gráfico:
<<
@
Y así seguiría nuestro trabajo.
Si aplicamos el código:
library(odfWeave)
odfWeave(ejemplo.odt,resultado.odt)
obtenemos el documento resultado.odt
Ejemplo
En este documento vamos a probar el paquete odfWeave.
Primero cargamos los datos de forma oculta para el documento final.
Los datos a estudiar contienen 6 variables medidas sobre 32 coches.
Podemos insertar una tabla resumen de los datos:
mpg | cyl | disp | hp | drat | wt |
20.091 | 6.188 | 230.722 | 146.688 | 3.597 | 3.217 |
También podemos añadir algún bonito gráfico:
Y así seguiría nuestro trabajo.
El formato de las imágenes y su tamaño se controlan con las funciones getImageDefs y setImageDefs.
Del mismo modo, el formato del texto o de las tablas se controla con las funciones de definición de estilo getStyleDefs y setStyleDefs, y las de asignación getStyle y setStyle para determinar algún elemento.
La clase odfTable se utiliza para convertir vectores, matrices y data frames a tablas ODF. La función odfCat sirve para escribir texto directamente en el formato ODF. También hay funciones para crear listas y para insertar imágenes externas.
Una vez tenemos el documento resultado, podemos utilizar OpenOffice para convertir manualmente este documento a otros formatos. Para ello se usa el menú Guardar como... o Exportar... del menú Archivo. En algunos sistemas operativos también disponemos de programas conversores desde la consola.
Para utilizar el paquete odfWeave es necesario que nuestro ordenador disponga de un compresor/descompresor de archivos ZIP. También deberemos tener en cuenta que los gráficos se graban en formato PNG, por si nuestro sistema no tiene el dispositivo adecuado.
Buenas. Estoy probando el ejemplo y no me funciona en el ordenador del curro (windows xp), como compresor descompresor uso 7zip. El error que me da es:
ResponderEliminarCopying prueba.odt
Setting wd to C:\DOCUME~1\JOSELU~1\CONFIG~1\Temp\Rtmpa3W2Kz/odfWeave01184812890
Unzipping ODF file using unzip -o "prueba.odt"
Error en odfWeave("prueba.odt", "resultado.odt") : Error unzipping file
Además: Mensajes de aviso perdidos
In system(zipCmd[2], invisible = TRUE) : unzip no encontrado
Gracias
Tienes que instalar zip.exe y unzip.exe en una carpeta donde lo encuentre tu sistema operativo. O modificar el PATH de windows pero eso es más lioso...
ResponderEliminar