Creare un nuovo file RMarkdown

Easy peasy ๐Ÿ‹ squeezy:

Default file RMarkdown

Come prima cosa, appare questo:

---
title: "Esempio di File di testo"
author: "Ottavia M. Epifania"
date: "5/3/2022"
output: html_document
---

Questo รจ lโ€™header YAML ed รจ dove andiamo a definire il tipo di file che vogliamo, il titolo, lโ€™autore, la data.

Per compilare il file si puรฒ premere sul tasto knit oppure si puรฒ usare la combo di tasti shift + ctrl + k (per chi ha il Mac shift + cmd + k)

Siccome nel nostro header abbiamo output: html_document (il default), il file compilato sarร  un file html

Visual vs.ย source

Visual

Source

Your turn!

  • Create un nuovo file

  • Date un titolo a scelta

  • Cliccate “knit”!

ADAVANCED

  • Mettere un sottotitolo
  • Togliere la data

Dettagli sulla compilazione

Si puรฒ scegliere il tipo di file da compilare cambiando da output: html_document a output: pdf_document (Questa operazione si puรฒ svolgere anche cliccando sulla freccina accanto a knit e selezionando “Knit to PDF”)

Nel caso abbiate seguito la seconda strada, viene modificato lo YAML del file:

---
title: "Esempio di File di testo"
author: "Ottavia M. Epifania"
date: "5/3/2022"
output: 
  pdf_document: default
  html_document: default
---

Ma non preoccupatevi, รจ la stessa cosa!

Se non viene modificato troppo il default, si puรฒ saltellare tra html e pdf piรน volte!

Tutti per lo YAML, uno YAML per tutto

Nello YAML andiamo ad indicare varie specifiche del nostro file (che vedremo in seguito).

Per ora, aggiungiamo un sottotitolo:

---
title: "Esempio di File di testo"
subititle: "Ecco il sottotitolo"
author: "Ottavia M. Epifania"
date: "5/3/2022"
output: 
  pdf_document: default
  html_document: default
---

Si possono pure togliere pezzi

La data non sta molto bene: Provate a toglierla!

---
title: "Esempio di File di testo"
subititle: "Ecco il sottotitolo"
author: "Ottavia M. Epifania"
date: ""
output: 
  pdf_document: default
  html_document: default
---

Gli headers

Cosa sono

Sono i titoli delle sezioni, sottosezioni e dei paragrafi

# Header 1

## Header 2

### Header 3

#### Header 4

Titolo di una sezione

Titolo di una sottosezione

Titolo della sotto-sottosezione (seriously)

Titolo del paragrafo

Come si usano

# Header 1

Brividi brividi brividiiiiiii

Anche tutti gli altri header funzionano cosรฌ, ad eccezione di #### Header 4

#### Titolo di un paragrafo

Testo del paragrafo molto importante

I numeri di sezione

Per aggiungere i numeri delle sezioni, basta aggiungere allo YAML: number_sections: true:

---
title: "Esempio di File"
subtitle: Sottotitolo
date: "5/3/2022"
author: Ottavia M. Epifania
  output:
    pdf_document: 
    number_sections: true
---

(fate attenzione allโ€™indentazione)

Table of contents

Per aggiungere lโ€™indice, bisogna modificare lo YAML, aggiungendo lโ€™elemento toc(Table Of Contents)

---
output:
  pdf_document: 
  number_sections: true
  toc: true
---  

con lโ€™argomento toc_depth si puรฒ specificare il livello di profonditร  dellโ€™indice.

Con toc_depth: 1 vengono riportati solo i titoli delle sezioni (Header 1), con toc_depth: 2 i titoli delle sezioni e sottosezioni (Header 1 e 2, default) e via discorrendo.

Your turn

  • Creare un documento
  • Usare il nome del vostro dataset come titolo
  • Sottotitolo a scelta
  • Al posto della data \(\rightarrow\) Universitร  di Padova

ADAVANCED

  • Aggiungere almeno 3 headings (e.g., “Titolo 1”, “Titolo 2”, “Titolo 3”)
  • Table of contents (hint: toc: true)

Formattazione del testo

Interlinea & Margini

YAML:

---
output:
  pdf_document: 
   number_sections: true
      toc: true
      toc_depth: 1
  linestretch: 1.5
  geometry: margin=1in
---  

Corsivo, grassetto, corsetto, colori

*Corsivo*

**Grassetto**

***Corsetto***

\textcolor{red}{Parola colorata (PDF)}

<span style="color:red">Parola colorata (HTML)</span>

Corsivo

Grassetto

Corsetto

Parola colorata (PDF)

Parola colorata (HTML)


Ingrandire e rimpicciolire il testo

Your turn!

  • Modificare i margini del documento a 0.5in
  • Impostare lโ€™interlinea di un punto e mezzo
  • Mettere delle parole in corsivo, grassetto e corsetto
  • Aggiungere delle parole colorate

ADAVANCED

  • Aggiungere una parola colorata in grassetto
  • Aggiungere una parola colorata in corsivo
  • Aggiungere una parola colorata in corsetto

Block quote

Molto semplicemente, si fa precedere il testo da >:

Una canzone de "La rappresentante di lista", presentata a Sanremo 2022
> Come stai bambina? Dove vai stasera?  Che paura intorno รˆ la fine del mondo. 
Sopra la rovina sono una regina Ma-ma-ma 
Ma non so cosa salvare

Elenchi

Unordered list

- Chimica
- Ciao Ciao
- Brividi
- Domenica
  • Chimica
  • Ciao Ciao
  • Brividi
  • Domenica

Ordered list

1. Brividi
2. La canzone di Elisa
3. Gianni Morandi
4. Non mi ricordo
  1. Brividi
  2. La canzone di Elisa
  3. Gianni Morandi
  4. Non mi ricordo

Elenchi annidati

Basta mettere tre spazi sullโ€™elenco che si vuole annidare:

- Un elenco
    - Voce del secondo elenco
    - altra voce del secondo elenco
- Seconda voce del primo elenco
  • Un elenco
    • Voce del secondo elenco
    • altra voce del secondo elenco
  • Seconda voce del primo elenco

Note

Nulla di piรน semplice:

Con i piedi[^1]

[^1]: ciao ciao

Un sacco di testo nel mio file 

Link

Your turn

  • Creare una unordered list
  • Creare una ordered list
  • Annidare una unordered list in una ordered list

ADAVANCED

  • Inserire una list a scelta (ordered o unordered) in un block quote
  • Inserire una lista a scelta (ordered o unordered) dentro unโ€™altra lista a scelta dentro un block quote (Inception style ๐Ÿ˜Ž)
  • Mettere due note a piรจ di pagina
  • In una delle due note metter un link a una pagina wikipedia connessa al vostro dataset

Inserire immagini

Markdown style vs.ย RMarkdown PT. I

Markdown


![Caption](percorso-alla-figura)

Prima del corso RMarkdown

RMarkdown


```{r, fig.cap = "Caption", fig.align="center", out.width="50%"}
knitr::include_graphics(path = "percorso-alla-figura")
```
Dopo il corso `RMarkdown`

Dopo il corso RMarkdown

fig.align (cambia lโ€™allineamento della figura), out.width (cambia la dimensione dellโ€™immagine modificandone la larghezza, lโ€™altezza si adatta automaticamente)

Markdown style vs.ย RMarkdown PT. II

Markdown


๐Ÿ˜„ Piรน immmediato

๐Ÿ˜„ Si “autoaggiusta” al file (non sempre in modo ottimale)

๐Ÿฅน Per cambiare qualcosa bisogna ricorrere a HTML

RMarkdown


๐Ÿ˜„ Permette di cambiare comodamente posizionamento e dimensioni dellโ€™immagine

๐Ÿ˜ข Richiede un poโ€™ di scrittura in piรน

Le sottocartelle

Perchรฉ


In Word o simili siamo abituati a mettere “a mano” le figure, magari anche la bibliografia \(\rightarrow\) si mette tutto nel file di testo

In RMarkdown, le immagini, la bibliografia, gli eventuali dati e i risultati delle analisi devono essere importati allโ€™interno del file

Lโ€™importazione รจ basata sui “percorsi” (le directory) dei file.

Come

Fondamentalmente in due modi:

  1. Il file che ci interessa รจ nella stessa cartella del file su cui stiamo lavorando:
    • Questa opzione va bene se abbiamo pochi file da importare
    • Ad ogni modo questa non รจ una soluzione ottimale \(\rightarrow\) troppo disordine
  2. Si creano delle sottocartelle divise per tema (e.g., immagini, bibliografia, dati) \(\rightarrow\) รจ la soluzione ottimale che permette di avere tutti i file a disposizione e organizzati in modo lineare

Un esempio

Se volessi importare unโ€™immagine nel mio documento chiamata “immagine.png” contenuta nella cartella “vignettes” dovrei scrivere:

```{r, fig.cap = "Caption", fig.align="center", out.width="50%"}
knitr::include_graphics(path = "vignettes/immagine.png")
```

(Funziona anche usando il codice ![Caption](vignettes/immagine.png))

Your turn!

  • Nel vostro progetto, create la cartella img e la cartella bibliografia
  • Scegliete due immagini da Google immagini (magari inerenti il vostro dataset ๐Ÿ”, ๐ŸŒบ, ๐Ÿš—) e salvatele nelle cartella img
  • Importare le immagini, una con il codice Markdown, una con il codice RMarkdown

ADVANCED

  • Importare di nuovo una delle due immagini e allinearla a destra
  • Importare di nuovo lโ€™altra immagine e ridurre la dimensione al 10%

Bibliografia

Torniamo allo YAML

output:
  pdf_document: 
  keep_tex: yes
   number_sections: true
   toc: true
   toc_depth: 1
linestretch: 1.5
geometry: margin=1in 
bibliography: biblio.bib

Ecco fatto, messa la bibliografia!

Ovviamente, il file biblio.bib va creato ex-novo.

Se si usa questo codice, la bibliografia deve essere nella stessa cartella del file che stiamo creando. Se invece รจ in una sottocarella bibliography: bibliografia/biblio.bib

Creare .bib

.bib รจ lโ€™estensione del file. Sia R sia LaTeX riconoscono i file .bib come file di bibliografia.

  1. Si decide qual รจ la letteratura rilevante per quello che stiamo facendo
  2. si va su Google scholar e si copia la citazione in formato BibTex:

  1. La citazione risulta essere:

```
@article{epifania2021implicit,
title={Implicit social cognition through the years: The Implicit Association Test at age 21.},
author={Epifania, Ottavia M and Anselmi, Pasquale and Robusto, Egidio},
journal={Psychology of Consciousness: Theory, Research, and Practice},
year={2021},
doi={https://doi.org/10.1037/cns0000305},
publisher={Educational Publishing Foundation}
}
```
  1. La copiaincolliamo in un documento vuoto (il blocco note va benissimo)

  2. Salviamo il documento con un nome a scelta (e.g., biblio) ma soprattutto ricordando lโ€™estensione .bib

โ— epifania2021implicit รจ la “chiave” che ci permette di citare lโ€™articolo nel testo

In fondo al file # Bibiografia

Come citare nel testo

Your turn

  • Creare un file .bib che contenga questi due articoli su Google Scholar:
    • DscoreApp: a shiny web application for the computation of the implicit association test d-score
    • Implicit measures with reproducible results: The implicitMeasures package
  • Salvare il file nella cartella bibliografia creata in precedenza
  • Usare entrambe le citazioni con Autori e anno tra parentesi

ADVANCED

  • Sbizzarritevi con le citazioni

La matematica (non sarร  mai il mio mestiere)

Equazioni

Le equazioni vengono risconosciute dal simbolo $.

Inline equation

$3 +2 =5$ risulta in \(3+2=5\), sulla stessa riga del testo che si sta scrivendo

Equation

Per scrivere le equazioni come blocchi di testo a parte, si usa il doppio dollaro. $$3 +2 =5$$ diventa \[3+2=5\] (anche se lo scrivo sulla stessa riga!)

Lettere greche, frazioni e simili

Per inserire le lettere greche, basta scrivere la lettera greca che si desidera in caratteri latini allโ€™interno dei dollari, preceduta da \.

Piรน semplicente, se vogliamo \(\delta\), non dobbiamo far altro che scrivere $\delta$

Se si vogliono le lettere greche maiuscolo, si mette in maiuscolo la prima lettera latina, per cui $\Delta$ risulta in \(\Delta\)

$\frac{num}{den}$ permette di scrivere le frazioni ($\frac{2}{3}$ \(\rightarrow\) \(\frac{2}{3}\))

$\sqrt{numero}$ รจ la radice quadrata ($\sqrt{4}$ \(\rightarrow\) \(\sqrt{4}\))

A questa pagina trovate una lista esaustiva dei simboli matematici

Tutto molto bello, maโ€ฆ.?

Ma come si metteno le cross-referencing?

Con RMarkdown base (quello che stiamo usando noi), si puรฒ usando LaTeX

bookdown ci permette di fare cross-references alle equazioni, alle figure (generate da codice) e alle tabelle:

install.packages("bookdown")

E modifichiamo lโ€™output nello YAML in:

 output: 
  bookdown::pdf_document2:
    keep_tex: yes
    number_sections: yes
    toc: yes
    toc_depth: 
    [...]

Il comando nel testo:

Nella breve lezione su LaTeX vedremo come usare al meglio e soprattutto in modo flessibile le cross-references

Cross-referencing: La tabella

La tabella deve essere generata dal codice di R

Unfortunately, stargazer e bookdown non si parlano. A questa pagina discutono di come integrare i due pacchetti ma non funziona

Usiamo kable:

```{r cars-table}
knitr::kable(mtcars[1:5, ], caption = "Questo รจ un dataset")
```

Per richiamare nel testo \@ref(tab:cars-table).

Cross-referencing: I plot

Funziona solo con la funzione base plot:

```{r speed-dist, fig.cap="Grafico mpg-cilindrata"}
par(mar = c(4, 4, .2, .1))
plot(mtcars$mpg ~ mtcars$cyl)  # a boxplot
```

Per richiamrla nel testo \@ref(fig:speed-dist)

Cross-referencing: Le equazioni

Molto semplicemente:

\begin{equation}
\bar{X} = \frac{\sum_{i=1}^n X_i}{n} (\#eq:media)
\end{equation}

Per richiamarla nel testo \@ref(eq:mean)