> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/texlive/it/competenze/codice-r-knitr.md).

# Codice R (knitr)

Overleaf offre un'integrazione con **knitr**, che ti permette di aggiungere codice R al tuo documento LaTeX per generare un output dinamico.

I documenti che contengono codice R devono essere salvati con l'estensione `.Rtex` o `.Rnw`, altrimenti il codice non funzionerà. Vediamo un esempio:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puoi digitare comandi R nel tuo documento \LaTeX{} che verranno elaborati e il cui output sarà incluso nel documento:

<<>>=
# Crea una sequenza di numeri
X = 2:10

# Mostra le misure statistiche di base
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo1.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F4rB1ItV9jgLU4dT6o3Hf%2FKnitrDemo1.png?alt=media\&token=5b2d4df8-8de9-4bdd-be61-0a3992026edf)

[Apri questo `knitr` esempio su Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Come puoi vedere, il testo tra i caratteri `<<>>=` e `@` è codice R. Questo codice e il suo output vengono stampati in un formato simile a un elenco. Questo chunk di codice può accettare alcuni parametri aggiuntivi per personalizzare l'output dinamico, come descritto nella sezione successiva.

### Chunk di codice

Un blocco di codice come quello presentato nella sezione precedente viene solitamente chiamato un *chunk*. Puoi impostare alcune opzioni aggiuntive nei chunk di knitr. Vedi l'esempio qui sotto:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puoi digitare comandi R nel tuo documento \LaTeX{} che verranno elaborati e il cui output sarà incluso nel documento:

<<echo=FALSE, cache=TRUE>>=
# Crea una sequenza di numeri
X = 2:10

# Mostra le misure statistiche di base
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo2.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FHtobrK1TjY4SG4ax2BH5%2FScreenshot%202025-12-16%20143420.png?alt=media\&token=50675660-f20f-44d3-be60-fb91b8dbd255)

[Apri questo `knitr` esempio su Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Ci sono due opzioni aggiuntive passate all'interno di `<<` e `>>`.

* `echo=FALSE`Questo nasconde il codice e stampa solo l'output generato da R.
* `cache=TRUE`Se cache è impostato su true, il chunk non viene eseguito, ma solo gli oggetti da esso generati. Questo fa risparmiare tempo se i dati in quel chunk non sono cambiati.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Nota che l'opzione cache=TRUE non è attualmente supportata in Overleaf, ma dovrebbe funzionare in locale.</em></p></div>

Vedi la [guida di riferimento](https://learn.overleaf.com/learn/Knitr#Reference_guide) per ulteriori opzioni.

### Comandi in linea

È possibile accedere agli oggetti generati in un chunk e stamparli in linea.

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

Puoi digitare comandi R nel tuo documento \LaTeX{} che verranno elaborati e il cui output sarà incluso nel documento:

<<echo=FALSE, cache=TRUE>>=
# Crea una sequenza di numeri
X = 2:10

# Mostra le misure statistiche di base
summary(X)

@

Quindi, la media dei dati è $\Sexpr{mean(X)}$
\end{document}
```

{% endcode %}

![KnitrDemo3.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2Fbyz9VKDCCPcoWHbznSJ4%2FScreenshot%202025-12-16%20143647.png?alt=media\&token=9d5ef4de-f413-4bf2-83c8-bf2171f50dee)

[Apri questo `knitr` esempio su Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Il comando `\Sexpr{mean(X)}` stampa l'output restituito dal codice R `mean(X)`. All'interno delle parentesi graffe, può essere passato qualsiasi comando R.

### Grafici

I grafici possono essere aggiunti anche a un documento knitr, come in questo esempio:

{% code overflow="wrap" %}

```latex
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Istogramma di Overleaf", xlab="Dati")

@

La figura \ref{fig:plot1} è un semplice istogramma.

\end{document}
```

{% endcode %}

![KnitrDemo4.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F5NI4NOJICjnYf8Z2Me1b%2FScreenshot%202025-12-16%20143811.png?alt=media\&token=d937786f-da22-4cbd-9adf-f277ec9f77c4)

[Apri questo `knitr` esempio su Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Questo istogramma utilizza dati memorizzati in "data.txt", salvati nella directory di lavoro corrente. Al chunk vengono passate alcune opzioni relative alla figura.

`plot1`Questa è l'etichetta usata per fare riferimento al grafico. Il prefisso "fig:" è obbligatorio. Nell'esempio puoi vedere che la figura è richiamata con `\ref{fig:plot1}`.`fig.pos="t"` parametro di posizionamento. È lo stesso usato in [l'ambiente figure](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Larghezza e altezza della figura.`fig.cap="Primo grafico"`Didascalia della figura.

### Script R esterni

Puoi importare parti di uno script R esterno in un documento knitr. Questo è molto utile poiché è abbastanza comune scrivere e debuggare lo script in un programma esterno prima di includerlo nel documento.

Supponiamo di avere il seguente codice R in un file chiamato `mycode.R` che includiamo nel nostro documento LaTeX:

```r
## ---- myrcode1
# Crea una sequenza di numeri
 X = 2:10

## ---- myrcode2
# Mostra le misure statistiche di base
summary(X)
```

Nota le righe:

```r
## ---- myrcode1
```

e

```r
## ---- myrcode2
```

Queste segnano l'inizio di un chunk di codice e sono obbligatorie se vuoi usare questo script nel nostro documento, come mostrato nel seguente frammento di codice:

```r
Il chunk qui sotto non verrà stampato

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

Il codice deve apparire qui

<<myrcode2>>=

@
```

![KnitrDemo5.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FPzKSGsFTMdhs9K8dE8Ny%2FKnitrDemo5.png?alt=media\&token=9c32c381-7621-4b7d-9d73-c1e7a0b6aac8)

Il primo chunk non viene stampato ed è usato solo per importare lo script con il comando `read_chunk("mycode.R")` . Ecco perché l'opzione `echo=FALSE` è impostata. Inoltre, gli script non devono essere messi in cache. Una volta importato lo script, puoi stampare un chunk usando l'etichetta che hai impostato dopo `## ----`. In questo caso è `myrcode2`.

Abbiamo inserito tutti i frammenti di codice dell'articolo in un progetto che [puoi aprire su Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Guida di riferimento

Alcune opzioni dei chunk:

* `results`. Cambia il comportamento dei risultati generati dal codice R. I valori possibili sono:
  * `markup` Usa LaTeX per formattare l'output.
  * `asis` Stampa i risultati grezzi di R.
  * `hold` Trattiene i risultati dell'output e li sposta alla fine del chunk.
  * `hide` Nascondi i risultati.
* `echo`. Indica se includere il codice sorgente R. Altri parametri includono:
  * `echo=2:3` stampa solo la seconda e la terza riga;
  * `echo=-2:-3` esclude solo la seconda e la terza riga.
* `cache`. Indica se mettere in cache il chunk di codice. I valori possibili sono: `TRUE` e `FALSE`
* `highlight`. Indica se evidenziare il codice sorgente. I valori possibili sono: `TRUE` e `FALSE`
* `background`. Colore di sfondo del chunk. Possono essere usati i formati rgb e HTML. Il valore predefinito è *"#F7F7F7"*.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/texlive/it/competenze/codice-r-knitr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
