> 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/pl/wiecej-tematow/29-knitr.md).

# Knitr

Jak zauważono na Wikipedii, [Knitr to silnik do dynamicznego generowania raportów z użyciem R](https://en.wikipedia.org/wiki/Knitr), języka programowania ukierunkowanego na statystykę. W tym artykule wyjaśniono, jak dodać kod R do dokumentu LaTeX, aby wygenerować dynamiczny wynik.

W standardowej dystrybucji LaTeX musisz mieć skonfigurowane R w swoim systemie operacyjnym i uruchamiać kilka specjalnych poleceń, aby go skompilować. Overleaf może oszczędzić Ci tego kłopotu, **knitr** działa od razu po instalacji.

## Wstęp

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

```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 ciąg liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
summary(X)

@
\end{document}
```

![KnitrDemo1.png](/files/7e078265f74ec7539e41013b7097fb8051a0242c)

&#x20;[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ć kilka dodatkowych parametrów, aby dostosować dynamiczny wynik. Zobacz następny rozdział.

## Fragmenty kodu

Blok kodu taki jak przedstawiony w poprzedniej sekcji jest zwykle nazywany *fragmentem*. W fragmentach knitr możesz ustawić kilka dodatkowych opcji. Zobacz poniższy przykład:

```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 ciąg liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
summary(X)

@
\end{document}
```

![KnitrDemo2.png](/files/3fdf766d3a09d8fe9794c4a0643a149910f345dc)

&#x20;[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ą trzy 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 nie zmieniły się. Zwróć uwagę, że opcja cache=TRUE nie jest obecnie obsługiwana w Overleaf, ale powinna działać lokalnie.

Zobacz [przewodnik referencyjny](#reference-guide) po więcej opcji.

## Polecenia w linii

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

```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 ciąg liczb
X = 2:10

# Wyświetl podstawowe miary statystyczne
summary(X)

@

Tak więc średnia danych wynosi $\Sexpr{mean(X)}$
\end{document}
```

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

&#x20;[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)`. Wewnątrz nawiasów klamrowych można przekazać dowolne polecenie R.

## Wykresy

Do **knitr** dokumentu można także dodać wykresy. Zobacz następny przykład

```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}
```

![KnitrDemo4.png](/files/130912bfb700f16066870ae119e0c0fcf91458a6)

&#x20;[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 korzysta z danych zapisanych w pliku "data.txt", umieszczonym w bieżącym katalogu roboczym. Do fragmentu przekazano kilka opcji związanych z rysunkiem.

**plot1**

To etykieta używana do odwołania się do wykresu. Prefiks "fig:" jest obowiązkowy. Jak widać w przykładzie, do rysunku odwołano się za pomocą \ref{fig:plot1}.

**fig.pos="t"**

Parametr pozycjonowania. To samo używane jest w środowisku figure.

**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 **knitr** dokumentu. Jest to bardzo pomocne, ponieważ dość powszechne jest pisanie i debugowanie skryptu 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:

```latex
## ---- myrcode1
# Utwórz ciąg liczb
 X = 2:10

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

Zauważ linie

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

i

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

Oznaczają one 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:

```latex
Poniższy fragment nie zostanie wydrukowany

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

Kod musi pojawić się tutaj

<<myrcode2>>=

@
```

![KnitrDemo5.png](/files/2edf25c4eb0f2d15b96a692e4fadf07004987942)

Pierwszy fragment nie jest drukowany, służy tylko 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 wydrukować fragment, używając etykiety ustawionej po `## ----`. W tym przypadku jest to `myrcode2`.

Umieściliśmy wszystkie fragmenty kodu z 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 referencyjny

**Niektóre opcje fragmentu**

* `wyniki`. Zmienia zachowanie wyników generowanych przez kod R; możliwe wartości to
  * `markup` Używa LaTeX do formatowania wyniku.
  * `asis` Wyświetla surowe wyniki z R.
  * `hold` Zatrzymuje wyniki wyjściowe i umieszcza je na końcu fragmentu.
  * `hide` Ukrywa wyniki.
* `echo`. Czy dołączyć kod źródłowy R. Może przyjmować inne parametry, `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, domyślna wartość to *"#F7F7F7"*.

## Dalsza lektura

Więcej informacji znajdziesz w

* [Wyróżnianie kodu za pomocą minted](/latex/pl/formatowanie/12-code-highlighting-with-minted.md)
* [Używanie kolorów w LaTeX](/latex/pl/formatowanie/13-using-colors-in-latex.md)
* [wykresy w LaTeX-u](/latex/pl/specyficzne-dla-dziedziny/08-pgfplots-package.md)
* [Wstawianie obrazów](/latex/pl/wiecej-tematow/27-inserting-images.md)
* [Tabele](/latex/pl/rysunki-i-tabele/01-tables.md)
* [Pozycjonowanie obrazów i tabel](/latex/pl/rysunki-i-tabele/02-positioning-images-and-tables.md)
* [Pakiet TikZ](/latex/pl/rysunki-i-tabele/05-tikz-package.md)
* [Wyrażenia matematyczne](/latex/pl/matematyka/01-mathematical-expressions.md)
* [stronie **knitr** strona internetowa](http://yihui.name/knitr/)
* [stronie **knitr** podręcznik pakietu](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/pl/wiecej-tematow/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.
