> 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/texlive/de/fahigkeiten/r-code-knitr.md).

# R-Code (knitr)

Overleaf bietet eine Integration mit **knitr**, mit der Sie R-Code zu Ihrem LaTeX-Dokument hinzufügen können, um eine dynamische Ausgabe zu erzeugen.

Dokumente, die R-Code enthalten, müssen mit der Endung gespeichert werden `.Rtex` oder `.Rnw`, andernfalls funktioniert der Code nicht. Sehen wir uns ein Beispiel an:

{% code overflow="wrap" %}

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

Sie können R-Befehle in Ihr \LaTeX{}-Dokument eingeben; sie werden verarbeitet und ihre Ausgabe wird in das Dokument eingefügt:

<<>>=
# Erstelle eine Zahlenfolge
X = 2:10

# Grundlegende statistische Kennwerte anzeigen
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo1.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F4rB1ItV9jgLU4dT6o3Hf%2FKnitrDemo1.png?alt=media\&token=5b2d4df8-8de9-4bdd-be61-0a3992026edf)

[Öffnen Sie dieses `knitr` Beispiel auf Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Wie Sie sehen, ist der Text zwischen den Zeichen `<<>>=` und `@` R-Code. Dieser Code und seine Ausgabe werden in einem listenähnlichen Format ausgegeben. Dieser Code-Chunk kann einige zusätzliche Parameter erhalten, um die dynamische Ausgabe anzupassen, wie im nächsten Abschnitt beschrieben.

### Code-Chunks

Ein Codeblock wie der im vorherigen Abschnitt gezeigte wird normalerweise als *Chunk*bezeichnet. Sie können in knitr-Chunks einige zusätzliche Optionen festlegen. Siehe das folgende Beispiel:

{% code overflow="wrap" %}

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

Sie können R-Befehle in Ihr \LaTeX{}-Dokument eingeben; sie werden verarbeitet und ihre Ausgabe wird in das Dokument eingefügt:

<<echo=FALSE, cache=TRUE>>=
# Erstelle eine Zahlenfolge
X = 2:10

# Grundlegende statistische Kennwerte anzeigen
summary(X)

@
\end{document}
```

{% endcode %}

![KnitrDemo2.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FHtobrK1TjY4SG4ax2BH5%2FScreenshot%202025-12-16%20143420.png?alt=media\&token=50675660-f20f-44d3-be60-fb91b8dbd255)

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

Es gibt zwei zusätzliche Optionen innerhalb von `<<` und `>>`.

* `echo=FALSE`Dadurch wird der Code ausgeblendet und nur die von R erzeugte Ausgabe ausgegeben.
* `cache=TRUE`Wenn cache auf true gesetzt ist, wird der Chunk nicht ausgeführt, sondern nur die von ihm erzeugten Objekte. Das spart Zeit, wenn sich die Daten in diesem Chunk nicht geändert haben.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Beachten Sie, dass die Option cache=TRUE derzeit in Overleaf nicht unterstützt wird, sie sollte jedoch lokal funktionieren.</em></p></div>

Siehe den [Referenzhandbuch](https://learn.overleaf.com/learn/Knitr#Reference_guide) für weitere Optionen.

### Inline-Befehle

Es ist möglich, auf Objekte zuzugreifen, die in einem Chunk erzeugt wurden, und sie inline auszugeben.

{% code overflow="wrap" %}

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

Sie können R-Befehle in Ihr \LaTeX{}-Dokument eingeben; sie werden verarbeitet und ihre Ausgabe wird in das Dokument eingefügt:

<<echo=FALSE, cache=TRUE>>=
# Erstelle eine Zahlenfolge
X = 2:10

# Grundlegende statistische Kennwerte anzeigen
summary(X)

@

Also ist der Mittelwert der Daten $\Sexpr{mean(X)}$
\end{document}
```

{% endcode %}

![KnitrDemo3.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2Fbyz9VKDCCPcoWHbznSJ4%2FScreenshot%202025-12-16%20143647.png?alt=media\&token=9d5ef4de-f413-4bf2-83c8-bf2171f50dee)

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

Der Befehl `\Sexpr{mean(X)}` gibt die von dem R-Code zurückgegebene Ausgabe aus `mean(X)`. Innerhalb der geschweiften Klammern kann jeder beliebige R-Befehl übergeben werden.

### Grafiken

Grafiken können ebenfalls zu einem knitr-Dokument hinzugefügt werden, wie in diesem Beispiel:

{% code overflow="wrap" %}

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

@

Die Abbildung \ref{fig:plot1} ist ein einfaches Histogramm.

\end{document}
```

{% endcode %}

![KnitrDemo4.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2F5NI4NOJICjnYf8Z2Me1b%2FScreenshot%202025-12-16%20143811.png?alt=media\&token=d937786f-da22-4cbd-9adf-f277ec9f77c4)

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

Dieses Histogramm verwendet Daten, die in "data.txt" gespeichert sind und im aktuellen Arbeitsverzeichnis abgelegt wurden. Dem Chunk werden einige abbildungsbezogene Optionen übergeben.

`plot1`Dies ist das Label, mit dem auf die Grafik verwiesen wird. Der Präfix "fig:" ist zwingend erforderlich. Im Beispiel sehen Sie, dass auf die Abbildung mit `\ref{fig:plot1}`.`fig.pos="t"` Positionierungsparameter. Das ist derselbe, der verwendet wird in [dem figure-Umfeld](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Breite und Höhe der Abbildung.`fig.cap="First plot"`Beschriftung der Abbildung.

### Externe R-Skripte

Sie können Teile eines externen R-Skripts in ein knitr-Dokument importieren. Das ist sehr hilfreich, da es recht üblich ist, das Skript vor dem Einfügen in Ihr Dokument in einem externen Programm zu schreiben und zu debuggen.

Angenommen, wir haben den folgenden R-Code in einer Datei namens `mycode.R` die wir in unser LaTeX-Dokument einbinden:

```r
## ---- myrcode1
# Erstelle eine Zahlenfolge
 X = 2:10

## ---- myrcode2
# Grundlegende statistische Kennwerte anzeigen
summary(X)
```

Beachten Sie die Zeilen:

```r
## ---- myrcode1
```

und

```r
## ---- myrcode2
```

Diese markieren den Beginn eines Code-Chunks und sind obligatorisch, wenn Sie dieses Skript in unserem Dokument verwenden möchten, wie im folgenden Codeausschnitt gezeigt:

```r
Der folgende Chunk wird nicht ausgegeben

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

Der Code muss hier erscheinen

<<myrcode2>>=

@
```

![KnitrDemo5.png](https://3502988919-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVetOkhFZmAC8QCQK0Pi7%2Fuploads%2FPzKSGsFTMdhs9K8dE8Ny%2FKnitrDemo5.png?alt=media\&token=9c32c381-7621-4b7d-9d73-c1e7a0b6aac8)

Der erste Chunk wird nicht ausgegeben und dient nur dazu, das Skript mit dem Befehl zu importieren `read_chunk("mycode.R")` . Deshalb wird die Option `echo=FALSE` gesetzt. Außerdem dürfen Skripte nicht zwischengespeichert werden. Sobald das Skript importiert ist, können Sie einen Chunk mithilfe des Labels ausgeben, das Sie nach `## ----`festgelegt haben. In diesem Fall ist es `myrcode2`.

Wir haben alle Codefragmente des Artikels in einem Projekt gesammelt, das [Sie auf Overleaf öffnen können](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Referenzhandbuch

Einige Chunk-Optionen:

* `results`. Ändert das Verhalten der vom R-Code erzeugten Ergebnisse. Mögliche Werte sind:
  * `markup` Verwenden Sie LaTeX, um die Ausgabe zu formatieren.
  * `asis` Rohdaten-Ausgaben von R ausgeben.
  * `hold` Hält die Ausgaberesultate zurück und gibt sie erst am Ende des Chunks aus.
  * `hide` Ergebnisse ausblenden.
* `echo`. Ob der R-Quellcode einbezogen werden soll. Weitere Parameter sind:
  * `echo=2:3` gibt nur die zweite und dritte Zeile aus;
  * `echo=-2:-3` schließt nur die zweite und dritte Zeile aus.
* `cache`. Ob der Code-Chunk zwischengespeichert werden soll. Mögliche Werte sind: `TRUE` und `FALSE`
* `highlight`. Ob der Quellcode hervorgehoben werden soll. Mögliche Werte sind: `TRUE` und `FALSE`
* `background`. Hintergrundfarbe des Chunks. Die Formate rgb und HTML können verwendet werden. Der Standardwert ist *"#F7F7F7"*.


---

# 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/texlive/de/fahigkeiten/r-code-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.
