> 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/pl/umiejetnosci/kod-r-knitr.md).

# Kod R (knitr)

Overleaf oferuje integrację z **knitr**, która pozwala dodać kod R do dokumentu LaTeX, aby generować dynamiczny wynik.

Dokumenty zawierające kod R muszą być zapisane z rozszerzeniem `.Rtex` lub `.Rnw`, w przeciwnym razie kod nie zadziała. Zobaczmy przykład:

{% code overflow="wrap" %}

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

Możesz wpisywać polecenia R w swoim dokumencie \LaTeX{}, które zostaną przetworzone, a ich wynik zostanie dołączony do dokumentu:

<<>>=
# Utwórz sekwencję liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
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)

[Otwórz ten `knitr` przykład w Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Jak widać, tekst pomiędzy znakami `<<>>=` i `@` to kod R. Ten kod i jego wynik są wyświetlane w formacie podobnym do listingu. Ten fragment kodu może przyjmować dodatkowe parametry, aby dostosować dynamiczny wynik, jak opisano w następnej sekcji.

### Fragmenty kodu

Blok kodu podobny do tego przedstawionego w poprzedniej sekcji jest zwykle nazywany *fragmentem*. W fragmentach knitr można ustawić kilka dodatkowych opcji. Zobacz poniższy przykład:

{% code overflow="wrap" %}

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

Możesz wpisywać polecenia R w swoim dokumencie \LaTeX{}, które zostaną przetworzone, a ich wynik zostanie dołączony do dokumentu:

<<echo=FALSE, cache=TRUE>>=
# Utwórz sekwencję liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
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)

[Otwórz ten `knitr` przykład w Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Istnieją dwie dodatkowe opcje przekazywane wewnątrz `<<` i `>>`.

* `echo=FALSE`To ukrywa kod i wyświetla tylko wynik wygenerowany przez R.
* `cache=TRUE`Jeśli cache jest ustawione na true, fragment nie jest uruchamiany, a jedynie obiekty przez niego wygenerowane. Oszczędza to czas, jeśli dane w tym fragmencie się nie zmieniły.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Należy zauważyć, że opcja cache=TRUE nie jest obecnie obsługiwana w Overleaf, ale powinna działać lokalnie.</em></p></div>

Zobacz [przewodnik referencyjny](https://learn.overleaf.com/learn/Knitr#Reference_guide) aby poznać więcej opcji.

### Polecenia w tekście

Można uzyskać dostęp do obiektów wygenerowanych w fragmencie i wyświetlić je w tekście.

{% code overflow="wrap" %}

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

Możesz wpisywać polecenia R w swoim dokumencie \LaTeX{}, które zostaną przetworzone, a ich wynik zostanie dołączony do dokumentu:

<<echo=FALSE, cache=TRUE>>=
# Utwórz sekwencję liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
summary(X)

@

Zatem średnia danych wynosi $\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)

[Otwórz ten `knitr` przykład w Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Polecenie `\Sexpr{mean(X)}` wyświetla wynik zwrócony przez kod R `mean(X)`. W nawiasach klamrowych można przekazać dowolne polecenie R.

### Wykresy

Do dokumentu knitr można również dodawać wykresy, jak w tym przykładzie:

{% 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")

@

Rysunek \ref{fig:plot1} to prosty histogram.

\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)

[Otwórz ten `knitr` przykład w Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Ten histogram wykorzystuje dane zapisane w "data.txt", znajdującym się w bieżącym katalogu roboczym. Do fragmentu przekazywanych jest kilka opcji związanych z rysunkiem.

`plot1`To etykieta używana do odwoływania się do wykresu. Prefiks "fig:" jest obowiązkowy. W przykładzie widać, że odwołanie do rysunku odbywa się za pomocą `\ref{fig:plot1}`.`fig.pos="t"` parametr pozycjonowania. To ten sam, który jest używany w [środowisku figure](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Szerokość i wysokość rysunku.`fig.cap="First plot"`Podpis rysunku.

### Zewnętrzne skrypty R

Możesz importować części zewnętrznego skryptu R do dokumentu knitr. Jest to bardzo pomocne, ponieważ dość często skrypt pisze się i debugguje w zewnętrznym programie przed dołączeniem go do dokumentu.

Załóżmy, że mamy następujący kod R w pliku o nazwie `mycode.R` który dołączamy do naszego dokumentu LaTeX:

```r
## ---- myrcode1
# Utwórz sekwencję liczb
 X = 2:10

## ---- myrcode2
# Wyświetl podstawowe miary statystyczne
summary(X)
```

Zwróć uwagę na linie:

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

i

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

Oznaczają początek fragmentu kodu i są obowiązkowe, jeśli chcesz użyć tego skryptu w naszym dokumencie, jak pokazano w poniższym fragmencie kodu:

```r
Poniższy fragment nie zostanie wyświetlony

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

Kod musi pojawić się tutaj

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

Pierwszy fragment nie jest wyświetlany i służy wyłącznie do zaimportowania skryptu za pomocą polecenia `read_chunk("mycode.R")` . Dlatego opcja `echo=FALSE` jest ustawiona. Ponadto skrypty nie mogą być buforowane. Gdy skrypt zostanie zaimportowany, możesz wyświetlić fragment, używając etykiety ustawionej po `## ----`. W tym przypadku jest to `myrcode2`.

Umieściliśmy wszystkie fragmenty kodu artykułu w projekcie, który [możesz otworzyć w Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Przewodnik odniesienia

Niektóre opcje fragmentu:

* `wyniki`. Zmienia zachowanie wyników generowanych przez kod R. Możliwe wartości to:
  * `markup` Użyj LaTeX do formatowania wyniku.
  * `asis` Wyświetl surowe wyniki z R.
  * `hold` Zachowaj wyniki wyjściowe i przenieś je na koniec fragmentu.
  * `hide` Ukryj wyniki.
* `echo`. Czy dołączyć kod źródłowy R. Inne parametry to:
  * `echo=2:3` wyświetla tylko drugą i trzecią linię;
  * `echo=-2:-3` wyklucza tylko drugą i trzecią linię.
* `cache`. Czy buforować fragment kodu. Możliwe wartości to: `TRUE` i `FALSE`
* `highlight`. Czy wyróżniać kod źródłowy. Możliwe wartości to: `TRUE` i `FALSE`
* `background`. Kolor tła fragmentu. Można używać formatów rgb i HTML. Wartość domyślna to *"#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/pl/umiejetnosci/kod-r-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.
