R Markdown

# Markdown

Markdown: formato md. Ottimo per la documentazione, adatto a essere usato con qualsiasi editor di testo, default per documentazione GitHub, ci sono convertitori Markdown-html per poterlo usare per pagine web.

## Sintassi

### Titoli
Singolo cancelletto per titolo principale, doppio per titolo secondario, triplo per terzo.

### New line
Per andare a capo è necessario un doppio spazio al termine della riga.

### Testo
Testo normale
*Testo corsivo*
**Testo grassetto**
`monospace` (riquadrato tipo tag code in HTML)

### Liste
Lista non ordinata:
- primo elemento
- secondo elemento
- terzo elemento
Lista ordinata:
1. primo elemento
2. secondo elemento
3. terzo elemento (nel file MD appaiono ordinate per numero anche se non lo sono nel testo base)

### Link
Sintassi base:
[Sito internet](http://massyfigini.github.io/) e [blog](http://giovanestatistico.blogspot.it/)
Sintassi alternativa più ordinata:
[Sito internet][1] e [blog][2]
[1]: http://massyfigini.github.io/
[2]: http://giovanestatistico.blogspot.it/


# R Markdown

R Markdown: formato Rmd. Markdown combinato con codice R: perfetto per presentazioni in cui il testo è combinato con codice e risultati delle analisi pubblicabili facilmente anche su web.
Il pacchetto knitr converte il codice Rmd in md e quindi in html (o anche in doc o pdf).
Con RStudio può essere facilmente usato tramite il suo editor di testo (File -> New File -> R Markdown): una volta scritto il documento click su "knit HTML".
*VANTAGGI:*
- testo e codice nello stesso file, ordinati logicamente.
- analisi sempre aggiornate se cambia qualcosa
*SVANTAGGI:*
- se l'analisi è complessa avere tutto nello stesso file può essere difficile da leggere e lento (deve rifare ogni volta tutta l'analisi).
- Il design non è personalizzabile.

## Sintassi

### Codice R
Per inserire codice R si antepone ```{r} e si pospone ```, si otterrà sia il codice che il risultato
```{r}
set.seed(1)
x <- rnorm(100)
mean(x)
```
Si può dare un nome al codice
```{r nomecodice}
set.seed(1)
y <- sample(-10:10, size=100, replace=TRUE)
mean(y)
```
Si può decidere di nascondere il codice e mostrare solo il risultato con echo=FALSE
```{r risultato, echo=FALSE}
set.seed(1)
x <- rnorm(100)
mean(x)
```
Viceversa se si vuole solo il codice senza il risultato si usa results="hide"
```{r codice, results="hide"}
set.seed(1)
x <- rnorm(100)
mean(x)
```
E' possibile visualizzare i risultati all'interno di stringhe in questo modo:
```{r stringhe, echo=FALSE}
time <- Sys.time()
```
Data e ora attuali: `r time`
Anche i grafici sono incorporati: con fig.height e fig.width è possibile modificare le dimensioni
```{r grafico, fig.eight=4}
par(mar = c(5,4,1,1), las = 1)
plot(x, y, main = "Dati simulazione")
```
Per le tabelle si può utilizzare la libreria xtable (necessario results="asis" altrimenti la vedo in codice html):
```{r tabella, results = "asis"}
# prima creo i dati
library(datasets)
data(airquality)
fit <- lm(Ozone ~ Wind + Temp + Solar.R, data = airquality)
# ora printo la tabella
library(xtable)
xt <- xtable(summary(fit))
print(xt, type = "html")
```
Altra ottima libreria per le tabelle è la pander (sempre con asis)
```{r tabella2, results = "asis"}
library(datasets)   # per i dati
# tabella
library(pander)
pandoc.table(ToothGrowth)
```
Per cambiare i margini dell'output a 2 cm, aggiungere geometry: margin=2cm nell'intestazione iniziale.

Altre opzioni nell'intestazione tra graffe del codice:
- cache=TRUE per salvare nella cache il risultato di ogni step di codice: in questo modo viene eseguito solo la prima volta e quelle successive viene caricato dalla cache.
- fig.eight=4, fig.width=8 per forzare altezza e larghezza del grafico risultante dal codice
- message=FALSE e warning=FALSE per evitare di vedere messaggi di warning di R (in particolare al caricamento dei pacchetti).
- è possibile cambiare le opzioni di default mettendo un codice R iniziale contenente la funzione opts_chunk$set(), ad esempio opts_chunk$set(echo=FALSE, results="hide") per avere di default sia codice (echo) che risultati (results) nascosti

### New page
Comando per andare in una nuova pagina (utile ad esempio per pubblicazione in pdf):
/newpage

### Sintassi iniziale se non si usa R Studio
library(knitr)
knit2html("document.Rmd")
browseURL("document.html")

No comments:

Post a Comment