> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# R-code (knitr)

Overleaf biedt een integratie met **knitr**, waarmee je R-code aan je LaTeX-document kunt toevoegen om dynamische uitvoer te genereren.

Documenten die R-code bevatten, moeten worden opgeslagen met de extensie `.Rtex` of `.Rnw`, anders werkt de code niet. Laten we een voorbeeld bekijken:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo1.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=4cd20c6acbeeab2b1ae2b115efece70d" alt="KnitrDemo1.png" width="2150" height="681" data-path="images/texlive/knitrdemo1.png" />

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

Zoals je ziet, is de tekst tussen de tekens `<<>>=` en `@` R-code. Deze code en de uitvoer ervan worden afgedrukt in een listing-achtig formaat. Dit codeblok kan enkele extra parameters krijgen om de dynamische uitvoer aan te passen, zoals beschreven in de volgende sectie.

### Codeblokken (chunks)

Een codeblok zoals dat in de vorige sectie wordt meestal een *chunk* genoemd. Je kunt enkele extra opties instellen in knitr-chunks. Zie het onderstaande voorbeeld:

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143420.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=9c79c98b1894d1cd22f783c29356de1f" alt="KnitrDemo2.png" width="1910" height="559" data-path="images/texlive/screenshot-2025-12-16-143420.png" />

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

Er worden twee extra opties meegegeven tussen `<<` en `>>`.

* `echo=FALSE`Hiermee wordt de code verborgen en wordt alleen de door R gegenereerde uitvoer afgedrukt.
* `cache=TRUE`Als cache op true staat, wordt de chunk niet uitgevoerd; alleen de objecten die erdoor zijn gegenereerd worden gebruikt. Dit bespaart tijd als de gegevens in die chunk niet zijn gewijzigd.

  <Info><em>Let op: de optie cache=TRUE wordt momenteel niet ondersteund in Overleaf, maar zou lokaal wel moeten werken.</em></Info>

Zie de [referentiegids](https://learn.overleaf.com/learn/Knitr#Reference_guide) voor meer opties.

### Inline-commando's

Het is mogelijk om objecten die in een chunk zijn gegenereerd op te vragen en inline af te drukken.

```latex wrap theme={null}
\documentclass{article}
\begin{document}

You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:

<<echo=FALSE, cache=TRUE>>=
# Create a sequence of numbers
X = 2:10

# Display basic statistical measures
summary(X)

@

So, the mean of the data is $\Sexpr{mean(X)}$
\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/screenshot-2025-12-16-143647.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=8b59926a477373b2787f884267d7c263" alt="KnitrDemo3.png" width="1910" height="630" data-path="images/texlive/screenshot-2025-12-16-143647.png" />

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

Het commando `\Sexpr{mean(X)}` drukt de uitvoer af die wordt geretourneerd door de R-code `mean(X)`. Tussen de accolades kan elk R-commando worden opgegeven.

### Grafieken

Je kunt ook grafieken aan een knitr-document toevoegen, zoals in dit voorbeeld:

```latex wrap theme={null}
\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="Overleaf histogram", xlab="Data")

@

The figure \ref{fig:plot1} is simple histogram.

\end{document}
```

<img src="https://mintcdn.com/ayakaleaf-pro/GmaXa-Cu4QQRFT4C/images/texlive/screenshot-2025-12-16-143811.png?fit=max&auto=format&n=GmaXa-Cu4QQRFT4C&q=85&s=af1985b1e5b5ce56b777c5d9e3066420" alt="KnitrDemo4.png" width="1915" height="756" data-path="images/texlive/screenshot-2025-12-16-143811.png" />

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

Dit histogram gebruikt gegevens uit "data.txt", dat in de huidige werkmap is opgeslagen. Er worden enkele figuurgerelateerde opties aan de chunk meegegeven.

`plot1`Dit is het label waarmee naar de grafiek wordt verwezen. Het voorvoegsel "fig:" is verplicht. In het voorbeeld zie je dat naar de figuur wordt verwezen met `\ref{fig:plot1}`.`fig.pos="t"` positioneringsparameter. Dit is dezelfde als die in [de figure-omgeving](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Breedte en hoogte van de figuur.`fig.cap="First plot"`Bijschrift van de figuur.

### Externe R-scripts

Je kunt delen van een extern R-script importeren in een knitr-document. Dit is erg handig, omdat het vrij gebruikelijk is om het script eerst in een extern programma te schrijven en te debuggen voordat je het in je document opneemt.

Stel dat we de volgende R-code in een bestand `mycode.R` hebben, die we in ons LaTeX-document opnemen:

```r theme={null}
## ---- myrcode1
# Create a sequence of numbers
 X = 2:10

## ---- myrcode2
# Display basic statistical measures
summary(X)
```

Let op de regels:

```r theme={null}
## ---- myrcode1
```

en

```r theme={null}
## ---- myrcode2
```

Deze markeren het begin van een chunk en zijn verplicht als je dit script in ons document wilt gebruiken, zoals in het volgende codefragment:

```r theme={null}
The chunk below will not be printed

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

The code must show up here

<<myrcode2>>=

@
```

<img src="https://mintcdn.com/ayakaleaf-pro/v5p5w9EX1_dka_GD/images/texlive/knitrdemo5.png?fit=max&auto=format&n=v5p5w9EX1_dka_GD&q=85&s=0f1fd4088c9359058547a7c58f121bd5" alt="KnitrDemo5.png" width="1544" height="436" data-path="images/texlive/knitrdemo5.png" />

De eerste chunk wordt niet afgedrukt en wordt alleen gebruikt om het script te importeren met het commando `read_chunk("mycode.R")`. Daarom is de optie `echo=FALSE` ingesteld. Ook mogen scripts niet worden gecachet. Zodra het script is geïmporteerd, kun je een chunk afdrukken met het label dat je na `## ----` hebt ingesteld. In dit geval is dat `myrcode2`.

We hebben alle codefragmenten uit dit artikel in een project gezet dat [je in Overleaf kunt openen](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Referentiegids

Enkele chunk-opties:

* `results`. Verandert hoe de resultaten van de R-code worden verwerkt. Mogelijke waarden zijn:
  * `markup` Gebruik LaTeX om de uitvoer op te maken.
  * `asis` Druk de onbewerkte resultaten van R af.
  * `hold` Houd de uitvoerresultaten vast en plaats ze aan het einde van de chunk.
  * `hide` Verberg de resultaten.
* `echo`. Of de R-broncode moet worden opgenomen. Andere parameters zijn onder meer:
  * `echo=2:3` drukt alleen de tweede en derde regel af;
  * `echo=-2:-3` sluit alleen de tweede en derde regel uit.
* `cache`. Of de chunk moet worden gecachet. Mogelijke waarden zijn: `TRUE` en `FALSE`
* `highlight`. Of de broncode moet worden gemarkeerd. Mogelijke waarden zijn: `TRUE` en `FALSE`
* `background`. Achtergrondkleur van de chunk. Zowel rgb- als HTML-notatie kan worden gebruikt. De standaardwaarde is *"#F7F7F7"*.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.