> ## 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 tilbyr en integrasjon med **knitr**, som lar deg legge til R-kode i LaTeX-dokumentet ditt for å generere dynamisk utdata.

Dokumenter som inneholder R-kode, må lagres med filtypen `.Rtex` eller `.Rnw`, ellers vil ikke koden fungere. La oss se på 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" />

[Åpne dette `knitr`-eksemplet 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 ser, er teksten mellom tegnene `<<>>=` og `@` R-kode. Denne koden og utdataene fra den skrives ut i et listing-lignende format. Denne kodebiten kan ta noen ekstra parametere for å tilpasse den dynamiske utdataen, som beskrevet i neste del.

### Kodebiter (chunks)

En kodeblokk som den i forrige del kalles vanligvis en *chunk*. Du kan angi noen ekstra alternativer 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" />

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

Det sendes inn to ekstra alternativer mellom `<<` og `>>`.

* `echo=FALSE`Dette skjuler koden og skriver bare ut utdataene som R genererer.
* `cache=TRUE`Hvis cache er satt til true, kjøres ikke chunken, bare objektene den genererer brukes. Dette sparer tid hvis dataene i chunken ikke er endret.

  <Info><em>Merk at alternativet cache=TRUE for øyeblikket ikke støttes i Overleaf, men det skal fungere lokalt.</em></Info>

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

### Innebygde kommandoer

Det er mulig å få tilgang til objekter generert i en chunk og skrive dem ut i teksten.

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

[Åpne dette `knitr`-eksemplet 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)}` skriver ut resultatet som returneres av R-koden `mean(X)`. Inne i klammeparentesene kan du sende inn en hvilken som helst R-kommando.

### Plott

Plott kan også legges til i et knitr-dokument, som i dette eksemplet:

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

[Åpne dette `knitr`-eksemplet 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 histogrammet bruker data lagret i "data.txt", som ligger i gjeldende arbeidskatalog. Noen figurrelaterte alternativer sendes til chunken.

`plot1`Dette er etiketten som brukes til å referere til plottet. Prefikset "fig:" er obligatorisk. Du ser i eksemplet at figuren refereres med `\ref{fig:plot1}`.`fig.pos="t"` plasseringsparameter. Dette er det samme som brukes 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øyde.`fig.cap="First plot"`Bildetekst for figuren.

### Eksterne R-skript

Du kan importere deler av et eksternt R-skript til et knitr-dokument. Dette er svært nyttig, siden det er ganske vanlig å skrive og feilsøke skriptet i et eksternt program før det tas med i dokumentet.

Anta at vi har følgende R-kode i en fil kalt `mycode.R`, som vi inkluderer i LaTeX-dokumentet vårt:

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

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

Legg merke til linjene:

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

og

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

Disse markerer begynnelsen på en kodebit og er obligatoriske hvis du vil bruke dette skriptet i dokumentet, som vist i følgende kodefragment:

```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 chunken skrives ikke ut og brukes bare til å importere skriptet med kommandoen `read_chunk("mycode.R")`. Det er derfor alternativet `echo=FALSE` er satt. Skript må heller ikke mellomlagres. Når skriptet er importert, kan du skrive ut en chunk ved hjelp av etiketten du anga etter `## ----`. I dette tilfellet er det `myrcode2`.

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

### Referanseguide

Noen alternativer for chunks:

* `results`. Endrer hvordan resultatene som genereres av R-koden, håndteres. Mulige verdier er:
  * `markup` Bruk LaTeX til å formatere utdataene.
  * `asis` Skriv ut rå resultater fra R.
  * `hold` Hold tilbake resultatene og flytt dem til slutten av chunken.
  * `hide` Skjul resultatene.
* `echo`. Om R-kildekoden skal tas med. Andre parametere omfatter:
  * `echo=2:3` skriver bare ut andre og tredje linje;
  * `echo=-2:-3` utelater bare andre og tredje linje.
* `cache`. Om kodebiten skal mellomlagres. Mulige verdier er: `TRUE` og `FALSE`
* `highlight`. Om kildekoden skal fremheves. Mulige verdier er: `TRUE` og `FALSE`
* `background`. Bakgrunnsfargen til chunken. Formatene rgb og HTML kan brukes. Standardverdien er *"#F7F7F7"*.


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