R Language
R in LaTeX con knitr
Ricerca…
Sintassi
- << codice-interno-nome-pezzo, opzioni ... >> =
# Codice R qui
@ - \ Sexpr {#R Code Here}
- << read-external-R-file >> =
read_chunk ( 'r-file.R')
@
<< codice-esterno-nome-pezzo, opzioni ... >> =
@
Parametri
Opzione | Dettagli |
---|---|
eco | (VERO / FALSO) - se includere il codice sorgente R nel file di output |
Messaggio | (VERO / FALSO) - se includere i messaggi dall'esecuzione della sorgente R nel file di output |
avvertimento | (VERO / FALSO) - se includere gli avvertimenti dall'esecuzione della sorgente R nel file di output |
errore | (VERO / FALSO) - se includere errori dall'esecuzione della sorgente R nel file di output |
nascondiglio | (VERO / FALSO) - se memorizzare nella cache i risultati dell'esecuzione della sorgente R. |
fig.width | (numerico) - larghezza del grafico generato dall'esecuzione della sorgente R. |
fig.height | (numerico) - altezza del grafico generato dall'esecuzione della sorgente R. |
Osservazioni
Knitr è uno strumento che ci consente di intrecciare il linguaggio naturale (sotto forma di LaTeX) e il codice sorgente (nella forma di R). In generale, il concetto di intercalare il linguaggio naturale e il codice sorgente è chiamato programmazione alfabetica . Poiché i file knitr contengono una miscela di LaTeX (tradizionalmente contenuto in file .tex) e R (tradizionalmente contenuto nei file .R) è necessaria una nuova estensione di file chiamata R noweb (.Rnw). I file .Rnw contengono una combinazione di LaTeX e R code.
Knitr consente la generazione di report statistici in formato PDF ed è uno strumento chiave per ottenere ricerche riproducibili .
Compilare i file .Rnw in un PDF è un processo in due fasi. Per prima cosa, dobbiamo sapere come eseguire il codice R e catturare l'output in un formato che un compilatore LaTeX può comprendere (un processo chiamato "kniting"). Lo facciamo usando il pacchetto knitr. Il comando per questo è mostrato di seguito, assumendo che tu abbia installato il pacchetto knitr :
Rscript -e "library(knitr); knit('r-noweb-file.Rnw')
Questo genererà un normale file .tex (chiamato r-noweb.tex in questo esempio) che può essere trasformato in un file PDF usando:
pdflatex r-noweb-file.tex
R in lattice con Knitr e codice di esternalizzazione
Knitr è un pacchetto R che ci consente di mescolare il codice R con il codice LaTeX. Un modo per ottenere questo è pezzi di codice esterno. I blocchi di codice esterno consentono di sviluppare / testare gli script R in un ambiente di sviluppo R e quindi includere i risultati in un report. È una potente tecnica organizzativa. Questo approccio è dimostrato di seguito.
# 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}
Quando utilizziamo questo approccio manteniamo il nostro codice in un file R separato come mostrato di seguito.
## 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 in lattice con pezzi di codice Knitr e Inline
Knitr è un pacchetto R che ci consente di mescolare il codice R con il codice LaTeX. Un modo per ottenere questo è blocchi di codice in linea. Questo apporach è dimostrato sotto.
# 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 in LaTex con Knitr e Chunks di codice interno
Knitr è un pacchetto R che ci consente di mescolare il codice R con il codice LaTeX. Un modo per ottenere questo è pezzi di codice interno. Questo apporach è dimostrato sotto.
# 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}