---
title: "r markdown"
author: "Stefano Bussolon"
date: "6 gennaio 2019"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```


# RMarkdown



## Markdown

Markdown è un linguaggio di markup con una sintassi del testo semplice progettata in modo che possa essere convertita in HTML e in molti altri formati usando degli appropriati strumenti.


### Esempio di codice markdown

~~~
# Titolo di primo livello

Testo normale con un [link](http://example.com)

## Titolo di secondo livello

Testo con *corsivo*, **grassetto**, `monospace`

> questa è una citazione

![immagine](https://via.placeholder.com/150)

* una lista
* di punti
  * indentata
* non ordinata

1. una lista
2. numerata
   2.1. indentata
   2.2. con una propria numerazione
3. di punti

Una nota [^nota1] a pie di pagina
[^nota1]: il testo della nota

~~~

Omettendo i titoli di primo e secondo livello, il codice precedente produce la seguente formattazione:


Testo normale con un [link](http://example.com)

Testo con *corsivo*, **grassetto**, `monospace`

> questa è una citazione

![immagine](https://via.placeholder.com/150)

* una lista
* di punti
  * indentata
* non ordinata

1. una lista
2. numerata
   1. indentata
   2. con una propria numerazione
3. di punti

Una nota [^nota1] a pie di pagina

Per una guida dettagliata della versione di markdown utilizzata da Pandoc via RStudio, si veda [Pandoc Markdown](https://rmarkdown.rstudio.com/authoring_pandoc_markdown.html)


## Rmarkdown

RMarkdown si basa sull'idea di [literate programming](https://en.wikipedia.org/wiki/Literate_programming): integrare in uno stesso documento codice eseguibile e testo.

RMarkdown utilizza `knitr` per processare la parte di codice, creare l'output (compresi i grafici) ed includerli in un file markdown dinamicamente generato. Questo file viene poi trasformato in un documento (ad esempio html, pdf o word) utilizzando il programma `Pandoc`. Pandoc è uno strumento estremamente potente, capace di trasformare documenti di numerosi formati.

Il documento che stai leggendo è stato creato in RMarkdown.

Per usare RMarkdown è necessario installare la corrispondente libreria.

```{r rmd_install, eval=FALSE}
install.packages("rmarkdown")
```

### Anatomia di RMarkdown

La prima parte di un documento RMarkdown (opzionale, ma estremamente utile) è una sezione [YAML](https://yaml.org/) che descrive i *metadati* del documento: titolo, autore, data di creazione, abstract.

Il resto del documento integra delle parti testuali, scritte in Markdown, con dei `chunk` di codice `R`. In realtà RMarkdown supporta altri linguaggi, oltre ad R (ad esempio python).

### I `chunk`

Un chunk è un pezzo di codice che inizia con \`\`\`{r} e termina con \`\`\`

Ad esempio, il codice

~~~
	```{r eval=FALSE}
	vettore1 <- c(2,4,6,8,10,12)
	# seleziona il quinto elemento
	vettore1[5]
	# moltiplica il vettore
	vettore1*3
	```
~~~

genera il seguente risultato:

```{r}
vettore1 <- c(2,4,6,8,10,12)
# seleziona il quinto elemento
vettore1[5]
# moltiplica il vettore
vettore1*3
```


Posso mostrare nel testo il valore della variabile con la sintassi `_r variabile`.

Ad esempio: il valore di `vettore1[3]` è `r vettore1[3]`.

## I file Rmarkdown di questo corso

Il modo forse più efficace per farsi un'idea di come funziona Rmarkdown è quello di scaricare, far girare e modificare i file usati per generare le slide di questo corso, che sono pubblicate in [Materiale](https://www.bussolon.it/didattica/r_intro/materiale.html)


## Risorse

* [Markdown - Wikipedia](https://it.wikipedia.org/wiki/Markdown)
* [Markdown Cheatsheet · adam-p/markdown-here Wiki](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)


[^nota1]: il testo della nota
