Knitr
Knitr es un paquete nuevo de R que permite integrar código R en archivos de distintos formatos (ver tabla 1 y figura 1). Es más potente que los anteriores paquetes Sweave, pdfSweave o cacheSweave.Ver la entrada anterior sobre knitr.
Format | Source file ending | Output | R Code Chunk | R expression |
Rnw | Rnw (.Rnw) | Tex, pdf | <<R example>>= x <- 1+1 rnorm(5) @ |
\Sexpr{pi} |
Github format markdown | Markdown (.Rmd or .md) | md, html | ``` {r example} x <- 1+1 rnorm(5) ``` |
`r pi`. |
HTML | Rhtml | .html | <!--R example x <- 1+1 rnorm(5) end.rcode--> |
<!--rinline pi --> |
reStructuredText | .Rst | .rst | .. {R example}.. x <- 1+1.. rnorm(5) .. .. NOTE:include space after the .. |
:r:`pi` |
Tabla 1. Tipos de archivos que maneja knitr. Fuente: http://www.rstudio.com/shiny/
Knitr nos permite utilizar Markdown y R juntos!
¿Que puede hacer markdown por mi?
- Quiero olvidarme del instrumento para pensar sólo en lo que estoy escribiendo
- Quiero escribir sin preocuparme del aspecto
- Quiero reutilizar lo que ya sé
- Quiero índices, bibliografía, …
- Quiero documentos ligeros
- Quiero escribir como me convenga, para el lector lo que necesite
- Quiero poder recortar y pegar a sin problemas
- Quiero trabajar con mis colegas
Proceso en investigación reproducible
- Elaboración del documento donde se auna la escritura del código y los textos necesarios. En markdonw y R la extensión del fichero es .Rmd
- Procesado del documento por la aplicación correspondiente a lenguaje de trabajo, en nuestro caso R. Creación de un documento en el formato deseado; en nuetro caso un documento .md
- Procesado, en su caso, del documento resultante, por ejemplo: elaboración de un documento .pdf.
Para un adecuado seguimiento del trabajo, al final o el inicio, conviene añadir:
print(sessionInfo(), locale = FALSE)
Tipos de archivos que podemos generar
En un post anterior, he colgado un video sobre cómo usar knitr, mediante archivos Rnw y Rmd.
Rnw
Descargar el archivo exampleSweave.rnw.
- Para construir un archivo tex.
Sweave(file="exampleSweave.Rnw")
- Para convertir el archivo tex a un pdf.
tools::texi2dvi(file="exampleSweave.tex", pdf=TRUE)
- Para extraer el código R de los trozos o módulos ("chunks").
Stangle(file="exampleSweave.Rnw")
- Para producir un archivo html.
Sweave("filename.rnw", driver=RweaveHTML)
library
(knitr
)
knit
('knitr-minimal.Rnw')
También podemos utilizar el programa pandoc (conversor universal) para convertir el archivo Rnw a otros formatos:
# system("pandoc -s exampleSweave.Rnw -o exampleSweave.pdf") # system("pandoc -s exampleSweave.Rnw -o exampleSweave.docx") # system("pandoc -s exampleSweave.Rnw -o exampleSweave.html")
Rmd
# Create mark down (.md) file knit("example.Rmd") knit2html("example.Rmd") knit2pdf("example.Rmd")
require(knitr) # Produce the markdown (.md) file knit("example.Rmd") # help on the output and input formats accepted which include json, html, html5, odt, docx and epub and slide formats slidy, beamer, dzslides etc system("pandoc -h") # pdf file pandoc("example.md", format="latex") # html file pandoc("example.md", format="html5+lhs")
# OpenOffice File pandoc("example.md", format="odt") # Microsoft Word pandoc("example.md", format="docx")
Podemos ver el archivo Rmd de entrada slides.Rmd y el archivo html de salida slides.html.
También podemos utilizar pandoc de la siguiente manera.
knit("slides.Rmd") system("pandoc -s -S -i -t dzslides --mathjax slides.md -o slides.html")
Programas relacionados con knitr
Slidify: resultados html5
Ayuda a crear, personalizar y compartir documentos elegantes, dinámicos e interactivos a través de HTML5 - R - Markdown.
Referencias:
http://destio.us.es/calvo/images/pdfs/asig/sobreR/introduccionaR/tc_introduccionaR.htmlInformación extra que puedes necesitar.
- Cómo instalar Lyx-LATEX
- Diferencias entre Sweave y Knitr
- Instalación de Pandoc
Los usuarios de Windows están de suerte. Instalar Pandoc en Windows ahora es muy fácil. Se puede hacer desde R con el paquete installr. Una vez instalado este paquete en R, ejecutaremos la instrucción
library(installr) install.pandoc()
Comentarios
Publicar un comentario