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

Overleaf erbjuder en integration med **knitr**, som låter dig lägga till R-kod i ditt LaTeX-dokument för att generera dynamiskt utdata.

Dokument som innehåller R-kod måste sparas med filändelsen `.Rtex` eller `.Rnw`, annars fungerar inte koden. Låt oss titta på ett exempel:

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

[Öppna detta `knitr`-exempel 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 är texten mellan tecknen `<<>>=` och `@` R-kod. Koden och dess utdata skrivs ut i ett listningsliknande format. Det här kodstycket kan ta emot några extra parametrar för att anpassa det dynamiska utdatat, som beskrivs i nästa avsnitt.

### Kodstycken (chunks)

Ett kodblock som det i föregående avsnitt kallas vanligtvis för en *chunk*. Du kan ange några extra alternativ i knitr-chunks. Se exemplet nedan:

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

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

Två ytterligare alternativ anges inom `<<` och `>>`.

* `echo=FALSE` Döljer koden och skriver bara ut det utdata som R genererar.
* `cache=TRUE` Om cache är satt till true körs inte chunken, utan endast de objekt som den genererar används. Det sparar tid om datan i chunken inte har ändrats.

  <Info><em>Observera att alternativet cache=TRUE för närvarande inte stöds i Overleaf, men det bör fungera lokalt.</em></Info>

Se [referensguiden](https://learn.overleaf.com/learn/Knitr#Reference_guide) för fler alternativ.

### Inline-kommandon

Det går att komma åt objekt som genereras i en chunk och skriva ut dem direkt i texten.

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

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

Kommandot `\Sexpr{mean(X)}` skriver ut det utdata som returneras av R-koden `mean(X)`. Inom klamrarna kan valfritt R-kommando anges.

### Diagram

Diagram kan också läggas till i ett knitr-dokument, som i det här exemplet:

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

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

Det här histogrammet använder data som lagras i "data.txt", som är sparad i den aktuella arbetskatalogen. Några figurrelaterade alternativ skickas till chunken.

`plot1` Detta är etiketten som används för att referera till diagrammet. Prefixet "fig:" är obligatoriskt. I exemplet ser du att figuren refereras med `\ref{fig:plot1}`. `fig.pos="t"` är positioneringsparametern. Den är densamma som används i [figure-miljön](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment). `fig.height=4, fig.width=4` Figurens bredd och höjd. `fig.cap="First plot"` Figurens bildtext.

### Externa R-skript

Du kan importera delar av ett externt R-skript till ett knitr-dokument. Det är mycket användbart, eftersom det är ganska vanligt att skriva och felsöka skriptet i ett externt program innan det inkluderas i dokumentet.

Anta att vi har följande R-kod i en fil som heter `mycode.R`, som vi inkluderar i vårt LaTeX-dokument:

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

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

Lägg märke till raderna:

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

och

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

Dessa markerar början på en kodchunk och är obligatoriska om du vill använda skriptet i dokumentet, som visas i följande kodfragment:

```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örsta chunken skrivs inte ut och används bara för att importera skriptet med kommandot `read_chunk("mycode.R")`. Därför är alternativet `echo=FALSE` satt. Skript får inte heller cachas. När skriptet har importerats kan du skriva ut en chunk med hjälp av etiketten du angav efter `## ----`. I det här fallet är det `myrcode2`.

Vi har samlat alla kodfragment från artikeln i ett projekt som [du kan öppna i Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=).

### Referensguide

Några alternativ för chunks:

* `results`. Ändrar hur resultaten som genereras av R-koden hanteras. Möjliga värden är:
  * `markup` Använd LaTeX för att formatera utdata.
  * `asis` Skriv ut råa resultat från R.
  * `hold` Håll kvar resultaten och flytta dem till slutet av chunken.
  * `hide` Dölj resultaten.
* `echo`. Om R-källkoden ska inkluderas. Andra parametrar är bland annat:
  * `echo=2:3` skriver bara ut andra och tredje raden;
  * `echo=-2:-3` utesluter endast andra och tredje raden.
* `cache`. Om kodchunken ska cachas. Möjliga värden är: `TRUE` och `FALSE`
* `highlight`. Om källkoden ska syntaxmarkeras. Möjliga värden är: `TRUE` och `FALSE`
* `background`. Chunkens bakgrundsfärg. Format i rgb och HTML kan användas. Standardvärdet är *"#F7F7F7"*.


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