> ## 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-kode (knitr)

Overleaf tilbyder en integration med **knitr**, som giver dig mulighed for at tilføje R-kode til dit LaTeX-dokument for at generere dynamisk output.

Dokumenter, der indeholder R-kode, skal gemmes med filtypenavnet `.Rtex` eller `.Rnw`, ellers virker koden ikke. Lad os se et eksempel:

```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" />

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

Som du kan se, er teksten mellem tegnene `<<>>=` og `@` R-kode. Denne kode og dens output udskrives i et listing-lignende format. Denne kodeblok kan tage nogle ekstra parametre for at tilpasse det dynamiske output, som beskrevet i næste afsnit.

### Kodestykker (chunks)

En kodeblok som den, der blev vist i forrige afsnit, kaldes normalt en *chunk*. Du kan angive nogle ekstra indstillinger i knitr-chunks. Se eksemplet nedenfor:

```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" />

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

Der er to ekstra indstillinger angivet inden for `<<` og `>>`.

* `echo=FALSE` Dette skjuler koden og udskriver kun det output, der genereres af R.
* `cache=TRUE` Hvis cache er sat til true, køres chunken ikke; kun de objekter, den genererer, bruges. Det sparer tid, hvis dataene i chunken ikke er ændret.

  <Info><em>Bemærk, at indstillingen cache=TRUE i øjeblikket ikke understøttes i Overleaf, men den bør virke lokalt.</em></Info>

Se [referencevejledningen](https://learn.overleaf.com/learn/Knitr#Reference_guide) for flere indstillinger.

### Inline-kommandoer

Det er muligt at tilgå objekter, der er genereret i en chunk, og udskrive dem inline.

```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" />

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

Kommandoen `\Sexpr{mean(X)}` udskriver det output, der returneres af R-koden `mean(X)`. Inden for klammerne kan enhver R-kommando angives.

### Plots

Plots kan også tilføjes til et knitr-dokument, som i dette eksempel:

```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" />

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

Dette histogram bruger data, der er gemt i "data.txt" i den aktuelle arbejdsmappe. Der gives nogle figurrelaterede indstillinger til chunken.

`plot1` Dette er den etiket, der bruges til at referere til plottet. Præfikset "fig:" er obligatorisk. Du kan se i eksemplet, at figuren refereres med `\ref{fig:plot1}`. `fig.pos="t"` Placeringsparameter. Den er den samme som i [figure-miljøet](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment). `fig.height=4, fig.width=4` Figurens bredde og højde. `fig.cap="First plot"` Billedtekst til figuren.

### Eksterne R-scripts

Du kan importere dele af et eksternt R-script i et knitr-dokument. Det er meget nyttigt, da det er ret almindeligt at skrive og fejlfinde scriptet i et eksternt program, før det inkluderes i dokumentet.

Antag, at vi har følgende R-kode i en fil kaldet `mycode.R`, som vi inkluderer i vores LaTeX-dokument:

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

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

Bemærk linjerne:

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

og

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

Disse markerer begyndelsen af en chunk og er obligatoriske, hvis du vil bruge scriptet i dokumentet, som vist i følgende kodeudsnit:

```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" />

Den første chunk udskrives ikke og bruges kun til at importere scriptet med kommandoen `read_chunk("mycode.R")`. Derfor er indstillingen `echo=FALSE` sat. Derudover må scripts ikke caches. Når scriptet er importeret, kan du udskrive en chunk ved hjælp af den etiket, du har angivet efter `## ----`. I dette tilfælde er det `myrcode2`.

Vi har samlet alle kodeudsnittene fra artiklen i et projekt, som [du kan åbne i Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=).

### Referencevejledning

Nogle chunk-indstillinger:

* `results`. Ændrer adfærden for de resultater, der genereres af R-koden. Mulige værdier er:
  * `markup` Brug LaTeX til at formatere outputtet.
  * `asis` Udskriv rå resultater fra R.
  * `hold` Hold outputresultaterne tilbage, og skub dem til slutningen af chunken.
  * `hide` Skjul resultater.
* `echo`. Om R-kildekoden skal inkluderes. Andre parametre omfatter:
  * `echo=2:3` udskriver kun anden og tredje linje;
  * `echo=-2:-3` udelader kun anden og tredje linje.
* `cache`. Om kodestykket skal caches. Mulige værdier er: `TRUE` og `FALSE`
* `highlight`. Om kildekoden skal fremhæves. Mulige værdier er: `TRUE` og `FALSE`
* `background`. Baggrundsfarve for chunken. RGB- og HTML-formater kan bruges. Standardværdien er *"#F7F7F7"*.


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