R Language
Creazione di report con RMarkdown
Ricerca…
Tavoli da stampa
Esistono diversi pacchetti che consentono l'output di strutture di dati sotto forma di tabelle HTML o LaTeX. Per lo più si differenziano per la flessibilità.
Qui uso i pacchetti:
- knitr
- XTABLE
- assecondare
Per documenti HTML
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df), type="html")
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Per documenti PDF
---
title: "Printing Tables"
author: "Martin Schmelzer"
date: "29 Juli 2016"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(xtable)
library(pander)
df <- mtcars[1:4,1:4]
```
# Print tables using `kable`
```{r, 'kable'}
kable(df)
```
# Print tables using `xtable`
```{r, 'xtable', results='asis'}
print(xtable(df, caption="My Table"))
```
# Print tables using `pander`
```{r, 'pander'}
pander(df)
```
Come posso smettere di stampare xtable il commento prima di ogni tabella?
options(xtable.comment = FALSE)
Compresi i comandi del preamplificatore LaTeX
Ci sono due modi possibili per includere i comandi del preambolo LaTeX (ad esempio \usepackage
) in un documento RMarkdown.
1. Utilizzando l' header-includes
dell'opzione YAML header-includes
:
---
title: "Including LaTeX Preample Commands in RMarkdown"
header-includes:
- \renewcommand{\familydefault}{cmss}
- \usepackage[cm, slantedGreek]{sfmath}
- \usepackage[T1]{fontenc}
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Moden Font!
2. Inclusione di comandi esterni con includes
, in_header
---
title: "Including LaTeX Preample Commands in RMarkdown"
output:
pdf_document:
includes:
in_header: includes.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, external=T)
```
# Section 1
As you can see, this text uses the Computer Modern Font!
Qui, il contenuto di includes.tex sono gli stessi tre comandi che abbiamo incluso con header-includes
.
Scrivere un modello completamente nuovo
Una possibile terza opzione è scrivere il proprio modello LaTex e includerlo con il template
. Ma questo copre molto di più della struttura rispetto al solo preambolo.
---
title: "My Template"
author: "Martin Schmelzer"
output:
pdf_document:
template: myTemplate.tex
---
Comprese le bibliografie
Un catalogo bibtex può essere facilmente incluso con la bibliography:
dell'opzione YAML bibliography:
Un certo stile per la bibliografia può essere aggiunto con lo biblio-style:
I riferimenti sono aggiunti alla fine del documento.
---
title: "Including Bibliography"
author: "John Doe"
output: pdf_document
bibliography: references.bib
---
# Abstract
@R_Core_Team_2016
# References
Struttura del documento R-markdown di base
Pezzi con codice R markdown
R-markdown è un file markdown con blocchi incorporati di codice R chiamati chunks . Ci sono due tipi di blocchi di codice R: inline e block .
I blocchi in linea vengono aggiunti utilizzando la seguente sintassi:
`r 2*2`
Vengono valutati e inseriti la loro risposta di output in atto.
I blocchi Block hanno una sintassi diversa:
```{r name, echo=TRUE, include=TRUE, ...}
2*2
````
E vengono con diverse opzioni possibili. Ecco i principali (ma ce ne sono molti altri):
- echo (booleano) controlla che il codice all'interno del blocco sia incluso nel documento
- includere controlli (booleani) nel caso in cui l'output debba essere incluso nel documento
- fig.width (numerico) imposta la larghezza delle figure di output
- fig.height (numerico) imposta l'altezza delle figure in uscita
- fig.cap (carattere) imposta le didascalie delle figure
Sono scritti in un semplice tag=value
formato di tag=value
come nell'esempio sopra.
Esempio di documento R-markdown
Di seguito è riportato un esempio di base del file R-markdown che illustra come i pezzi del codice R sono incorporati all'interno di r-markdown.
# Title #
This is **plain markdown** text.
```{r code, include=FALSE, echo=FALSE}
# Just declare variables
income <- 1000
taxes <- 125
```
My income is: `r income ` dollars and I payed `r taxes ` dollars in taxes.
Below is the sum of money I will have left:
```{r gain, include=TRUE, echo=FALSE}
gain <- income-taxes
gain
```
```{r plotOutput, include=TRUE, echo=FALSE, fig.width=6, fig.height=6}
pie(c(income,taxes), label=c("income", "taxes"))
```
Conversione di markdown R in altri formati
Il pacchetto R knitr
può essere usato per valutare i blocchi R all'interno del file R-markdown e trasformarlo in un normale file di markdown.
I seguenti passaggi sono necessari per trasformare il file R-markdown in pdf / html:
- Converti il file R
knitr
fileknitr
usandoknitr
. - Convertire il file markdown ottenuto in pdf / html utilizzando strumenti specializzati come pandoc .
Oltre al pacchetto knitr
sopra, sono disponibili le funzioni wrapper knit2html()
e knit2pdf()
che possono essere utilizzate per produrre il documento finale senza il passaggio intermedio della conversione manuale nel formato markdown:
Se il suddetto file di esempio è stato salvato come income.Rmd
può essere convertito in un file pdf
utilizzando i seguenti comandi R:
library(knitr)
knit2pdf("income.Rmd", "income.pdf")
Il documento finale sarà simile a quello qui sotto.