> 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/latex/no/flere-emner/29-knitr.md).

# Knitr

Som nevnt på Wikipedia, [Knitr er en motor for dynamisk rapportgenerering med R](https://en.wikipedia.org/wiki/Knitr), et programmeringsspråk rettet mot statistikk. Denne artikkelen forklarer hvordan du legger til R-kode i LaTeX-dokumentet ditt for å generere dynamisk utdata.

I en standard LaTeX-distribusjon må du ha R satt opp i operativsystemet ditt og kjøre noen spesielle kommandoer for å kompilere det. Overleaf kan spare deg for bryet, **knitr** fungerer rett ut av boksen.

## Innledning

Dokumenter som inneholder R-kode må lagres med filendelsen `.Rtex` eller `.Rnw`, ellers vil ikke koden fungere. La oss se på et eksempel:

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

Du kan skrive R-kommandoer i \LaTeX{}-dokumentet ditt, som vil bli behandlet, og utdataene deres inkluderes i dokumentet:

<<>>=
# Opprett en tallsekvens
X = 2:10

# Vis grunnleggende statistiske mål
summary(X)

@
\end{document}
```

![KnitrDemo1.png](/files/55ffef661571d562ca25d45ba60df810d22997d2)

&#x20;[Åpne dette `knitr` eksempel på 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, teksten mellom tegnene `<<>>=` og `@` er R-kode, denne koden og utdataene den gir, skrives ut i et liste-lignende format. Denne kodebiten kan ta noen ekstra parametere for å tilpasse den dynamiske utdataen. Se neste avsnitt.

## Kodebiter

En kodeblokk som den som ble presentert i forrige avsnitt kalles vanligvis en *chunk*. Du kan angi noen ekstra valg i knitr-chunks. Se eksemplet nedenfor:

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

Du kan skrive R-kommandoer i \LaTeX{}-dokumentet ditt, som vil bli behandlet, og utdataene deres inkluderes i dokumentet:

<<echo=FALSE, cache=TRUE>>=
# Opprett en tallsekvens
X = 2:10

# Vis grunnleggende statistiske mål
summary(X)

@
\end{document}
```

![KnitrDemo2.png](/files/fdffdd0280bc160f74347be2825c9d9ce4ade8c6)

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

Det er tre tilleggsmuligheter sendt inn i `<<` og `>>`.

**echo=FALSE**

Dette skjuler koden og skriver bare ut utdataene generert av R.

**cache=TRUE**

Hvis cache er satt til true, kjøres ikke chunken, bare objektene den genererer. Dette sparer tid hvis dataene i den chunk-en ikke har endret seg. Merk at valget cache=TRUE for øyeblikket ikke støttes i Overleaf, men det bør fungere lokalt.

Se [referanseguiden](#reference-guide) for flere valg.

## Innebygde kommandoer

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

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

Du kan skrive R-kommandoer i \LaTeX{}-dokumentet ditt, som vil bli behandlet, og utdataene deres inkluderes i dokumentet:

<<echo=FALSE, cache=TRUE>>=
# Opprett en tallsekvens
X = 2:10

# Vis grunnleggende statistiske mål
summary(X)

@

Så middelverdien til dataene er $\Sexpr{mean(X)}$
\end{document}
```

![KnitrDemo3.png](/files/f30cf2c0438b2ee93dc7e28b6b4d8d06aa0b656c)

&#x20;[Åpne dette `knitr` eksempel på 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 utdataene som returneres av R-koden `mean(X)`. Inne i klammeparentesene kan hvilken som helst R-kommando sendes inn.

## Plott

Plott kan også legges til et **knitr** dokument. Se neste eksempel

```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="Overleaf histogram", xlab="Data")

@

Figuren \ref{fig:plot1} er et enkelt histogram.

\end{document}
```

![KnitrDemo4.png](/files/b6a7e53db189234bdfaaf05ec4cb17da8af790a9)

&#x20;[Åpne dette `knitr` eksempel på 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", lagret i gjeldende arbeidsmappe. Noen få figuroppsettsvalg sendes til chunken.

**plot1**

Dette er etiketten som brukes til å referere til plottet. Prefikset "fig:" er obligatorisk. Du kan se i eksemplet at figuren refereres med \ref{fig:plot1}.

**fig.pos="t"**

Plasseringsparameter. Dette er det samme som brukes i figure-miljøet.

**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 inn i 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 inkluderes i dokumentet ditt.

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

```latex
## ---- myrcode1
# Opprett en tallsekvens
 X = 2:10

## ---- myrcode2
# Vis grunnleggende statistiske mål
summary(X)
```

Legg merke til linjene

```latex
## ---- myrcode1
```

og

```latex
## ---- myrcode2
```

Disse markerer begynnelsen på en kodebit og er obligatoriske hvis du vil bruke dette skriptet i dokumentet vårt, slik det vises i det følgende kodefragmentet:

```latex
Kodebiten nedenfor vil ikke bli skrevet ut

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

Koden må vises her

<<myrcode2>>=

@
```

![KnitrDemo5.png](/files/8212464a50e888c422f94161a8b943125d18fe8d)

Den første kodebiten skrives ikke ut, den brukes bare til å importere skriptet med kommandoen `read_chunk("mycode.R")`, derfor er valget `echo=FALSE` satt. Skript må heller ikke caches. Når skriptet er importert, kan du skrive ut en kodebit ved å bruke etiketten du satte etter `## ----`. I dette tilfellet er det `myrcode2`.

Vi har lagt alle kodefragmentene fra artikkelen inn i et prosjekt som  [du kan åpne på 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 chunk-valg**

* `resultater`. Endrer oppførselen til resultatene generert av R-koden; mulige verdier er
  * `markup` Bruk LaTeX til å formatere utdataene.
  * `asis` Skriver ut rå resultater fra R.
  * `hold` Holder på utdataene og sender dem til slutt i kodebiten.
  * `hide` Skjul resultatene.
* `echo`. Om R-kildekoden skal tas med. Kan ta andre parametere, `echo=2:3` skriver bare ut den andre og tredje linjen; `echo=-2:-3` utelater bare den andre og tredje linjen.
* `cache`. Om kodebiten skal caches. Mulige verdier er `TRUE` og `FALSE`
* `highlight`. Om kildekoden skal utheves. Mulige verdier er `TRUE` og `FALSE`
* `background`. Bakgrunnsfargen til kodebiten; rgb- og HTML-formater kan brukes, standardverdien er *"#F7F7F7"*.

## Videre lesning

For mer informasjon, se

* [Kodesyntaksutheving med minted](/latex/no/formatering/12-code-highlighting-with-minted.md)
* [Bruke farger i LaTeX](/latex/no/formatering/13-using-colors-in-latex.md)
* [plott i LaTeX](/latex/no/fagspesifikt/08-pgfplots-package.md)
* [Sette inn bilder](/latex/no/flere-emner/27-inserting-images.md)
* [Tabeller](/latex/no/figurer-og-tabeller/01-tables.md)
* [Plassering av bilder og tabeller](/latex/no/figurer-og-tabeller/02-positioning-images-and-tables.md)
* [TikZ-pakke](/latex/no/figurer-og-tabeller/05-tikz-package.md)
* [Matematiske uttrykk](/latex/no/matematikk/01-mathematical-expressions.md)
* [den **knitr** nettside](http://yihui.name/knitr/)
* [den **knitr** pakkehåndbok](https://bitbucket.org/stat/knitr/downloads/knitr-manual.pdf)


---

# 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/latex/no/flere-emner/29-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.
