R Language
R en LaTeX con knitr
Buscar..
Sintaxis
- << internal-code-chunk-name, opciones ... >> =
Código # R aquí
@ - \ Sexpr {#R Code Here}
- << read-external-R-file >> =
read_chunk ('r-file.R')
@
<< external-code-chunk-name, opciones ... >> =
@
Parámetros
Opción | Detalles |
---|---|
eco | (VERDADERO / FALSO): si se debe incluir el código fuente R en el archivo de salida |
mensaje | (VERDADERO / FALSO): si se incluyen los mensajes de la ejecución de la fuente R en el archivo de salida |
advertencia | (VERDADERO / FALSO): si se incluyen advertencias de la ejecución de la fuente R en el archivo de salida |
error | (VERDADERO / FALSO): si se incluyen los errores de la ejecución de la fuente R en el archivo de salida |
cache | (VERDADERO / FALSO): si se deben almacenar en caché los resultados de la ejecución de la fuente R |
ancho de higo | (numérico): ancho del gráfico generado por la ejecución de la fuente R |
higo. | (numérico) - altura del gráfico generado por la ejecución de la fuente R |
Observaciones
Knitr es una herramienta que nos permite entrelazar el lenguaje natural (en forma de LaTeX) y el código fuente (en forma de R). En general, el concepto de intercalar el lenguaje natural y el código fuente se denomina programación alfabetizada . Dado que los archivos knitr contienen una mezcla de LaTeX (tradicionalmente alojados en archivos .tex) y R (tradicionalmente alojados en archivos .R), se requiere una nueva extensión de archivo llamada R noweb (.Rnw). Los archivos .Rnw contienen una mezcla de código LaTeX y R
Knitr permite la generación de informes estadísticos en formato PDF y es una herramienta clave para lograr investigaciones reproducibles .
La compilación de archivos .Rnw en un PDF es un proceso de dos pasos. Primero, necesitamos saber cómo ejecutar el código R y capturar la salida en un formato que pueda comprender un compilador LaTeX (un proceso llamado 'kniting'). Hacemos esto usando el paquete knitr. El comando para esto se muestra a continuación, asumiendo que ha instalado el paquete knitr :
Rscript -e "library(knitr); knit('r-noweb-file.Rnw')
Esto generará un archivo .tex normal (llamado r-noweb.tex en este ejemplo) que luego se puede convertir en un archivo PDF usando:
pdflatex r-noweb-file.tex
R en látex con Knitr y externalización de código
Knitr es un paquete R que nos permite mezclar el código R con el código LaTeX. Una forma de lograr esto es trozos de código externo. Los fragmentos de código externo nos permiten desarrollar / probar scripts R en un entorno de desarrollo R y luego incluir los resultados en un informe. Es una poderosa técnica organizativa. Este enfoque se demuestra a continuación.
# r-noweb-file.Rnw
\documentclass{article}
<<echo=FALSE,cache=FALSE>>=
knitr::opts_chunk$set(echo=FALSE, cache=TRUE)
knitr::read_chunk('r-file.R')
@
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
One we have called the read\_chunk command above we can reference sections of code in the r-file.R script.
<<Chunk1>>=
@
\end{document}
Al utilizar este enfoque, mantenemos nuestro código en un archivo R separado, como se muestra a continuación.
## r-file.R
## note the specific comment style of a single pound sign followed by four dashes
# ---- Chunk1 ----
print("This is R Code in an external file")
x <- seq(1:10)
y <- rev(seq(1:10))
plot(x,y)
R en látex con Knitr y trozos de código en línea
Knitr es un paquete R que nos permite mezclar el código R con el código LaTeX. Una forma de lograr esto es trozos de código en línea. Este apporach se muestra a continuación.
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<my-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
@
Above is an internal code chunk.
We can access data created in any code chunk inline with our LaTeX code like this.
The length of array x is \Sexpr{length(x)}.
\end{document}
R en LaTex con Knitr y fragmentos de código interno
Knitr es un paquete R que nos permite mezclar el código R con el código LaTeX. Una forma de lograr esto es trozos de código interno. Este apporach se muestra a continuación.
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<code-chunk-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
y <- seq(1:10)
plot(x,y) # Brownian motion
@
\end{document}