> ## 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.

# Kod R (knitr)

Overleaf zapewnia integrację z **knitr**, która pozwala dodawać kod R do dokumentu LaTeX w celu generowania dynamicznych wyników.

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

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

[Otwórz ten przykład `knitr` 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 między znakami `<<>>=` i `@` to kod R. Ten kod i jego wynik są wyświetlane w formacie przypominającym listing. Ten fragment kodu może przyjmować dodatkowe parametry pozwalające dostosować dynamiczne wyniki, co opisano w następnej sekcji.

### Fragmenty kodu

Blok kodu taki jak przedstawiony w poprzedniej sekcji jest zazwyczaj nazywany *fragmentem* (ang. chunk). We fragmentach knitr można ustawić dodatkowe opcje. Zobacz poniższy przykład:

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

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

Wewnątrz `<<` i `>>` przekazano dwie dodatkowe opcje.

* `echo=FALSE`Ukrywa kod i wyświetla tylko wynik wygenerowany przez R.
* `cache=TRUE`Jeśli cache ma wartość true, fragment nie jest uruchamiany, a używane są tylko wygenerowane przez niego obiekty. Pozwala to zaoszczędzić czas, jeśli dane w danym fragmencie się nie zmieniły.

  <Info><em>Pamiętaj, że opcja cache=TRUE nie jest obecnie obsługiwana w Overleaf, ale powinna działać lokalnie.</em></Info>

Więcej opcji znajdziesz w [przewodniku](https://learn.overleaf.com/learn/Knitr#Reference_guide).

### Polecenia w tekście

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

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

[Otwórz ten przykład `knitr` 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)`. Wewnątrz nawiasów klamrowych można przekazać dowolne polecenie R.

### Wykresy

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

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

[Otwórz ten przykład `knitr` 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 pliku "data.txt", znajdującym się w bieżącym katalogu roboczym. Do fragmentu przekazano 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 do rysunku odwołano się za pomocą `\ref{fig:plot1}`.`fig.pos="t"` parametr położenia. Jest to ten sam parametr, który stosuje się 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

Do dokumentu knitr można importować części zewnętrznego skryptu R. Jest to bardzo pomocne, ponieważ dość często pisze się i debuguje skrypt w zewnętrznym programie, zanim zostanie on dołączony do dokumentu.

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

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

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

Zwróć uwagę na wiersze:

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

oraz

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

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

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

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

Wszystkie fragmenty kodu z tego artykułu umieściliśmy 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

Wybrane opcje fragmentów:

* `results`. Zmienia sposób traktowania wyników generowanych przez kod R. Możliwe wartości to:
  * `markup` Formatuje wynik za pomocą LaTeX.
  * `asis` Wyświetla surowe wyniki z R.
  * `hold` Wstrzymuje wyniki i przenosi je na koniec fragmentu.
  * `hide` Ukrywa wyniki.
* `echo`. Czy dołączać kod źródłowy R. Inne parametry to:
  * `echo=2:3` wyświetla tylko drugi i trzeci wiersz;
  * `echo=-2:-3` wyklucza tylko drugi i trzeci wiersz.
* `cache`. Czy buforować fragment kodu. Możliwe wartości to: `TRUE` i `FALSE`
* `highlight`. Czy podświetlać składnię kodu źródłowego. 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"*.


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