> 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/uk/navichki/kod-r-knitr.md).

# Код R (knitr)

Overleaf надає інтеграцію з **knitr**, що дає змогу додавати код R до вашого документа LaTeX для створення динамічного виводу.

Документи, що містять код R, мають бути збережені з розширенням `.Rtex` або `.Rnw`, інакше код не працюватиме. Розгляньмо приклад:

{% code overflow="wrap" %}

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

Ви можете вводити команди R у ваш документ \LaTeX{}, які буде оброблено, а їхній вивід буде включено до документа:

<<>>=
# Створіть послідовність чисел
X = 2:10

# Виведіть основні статистичні показники
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)

[Відкрийте цей `knitr` приклад в Overleaf](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Як бачите, текст між символами `<<>>=` і `@` є кодом R. Цей код і його вивід друкуються у форматі, схожому на список. Цей фрагмент коду може приймати деякі додаткові параметри для налаштування динамічного виводу, як описано в наступному розділі.

### Фрагменти коду

Блок коду, подібний до того, що був представлений у попередньому розділі, зазвичай називається *фрагментом*. У фрагментах knitr можна задавати деякі додаткові параметри. Див. приклад нижче:

{% code overflow="wrap" %}

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

Ви можете вводити команди R у ваш документ \LaTeX{}, які буде оброблено, а їхній вивід буде включено до документа:

<<echo=FALSE, cache=TRUE>>=
# Створіть послідовність чисел
X = 2:10

# Виведіть основні статистичні показники
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)

[Відкрийте цей `knitr` приклад в Overleaf](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Всередину передаються два додаткові параметри `<<` і `>>`.

* `echo=FALSE`Це приховує код і друкує лише вивід, згенерований R.
* `cache=TRUE`Якщо cache встановлено в true, фрагмент не запускається, а лише об'єкти, згенеровані ним. Це економить час, якщо дані в цьому фрагменті не змінилися.

  <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p><em>Зверніть увагу, що параметр cache=TRUE наразі не підтримується в Overleaf, але локально він має працювати.</em></p></div>

Див. [довідник](https://learn.overleaf.com/learn/Knitr#Reference_guide) для отримання додаткових параметрів.

### Вбудовані команди

Можна отримати доступ до об'єктів, згенерованих у фрагменті, і виводити їх вбудовано.

{% code overflow="wrap" %}

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

Ви можете вводити команди R у ваш документ \LaTeX{}, які буде оброблено, а їхній вивід буде включено до документа:

<<echo=FALSE, cache=TRUE>>=
# Створіть послідовність чисел
X = 2:10

# Виведіть основні статистичні показники
summary(X)

@

Отже, середнє значення даних дорівнює $\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)

[Відкрийте цей `knitr` приклад в Overleaf](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Команда `\Sexpr{mean(X)}` друкує вивід, що повертається кодом R `mean(X)`. Усередині фігурних дужок можна передати будь-яку команду R.

### Графіки

Графіки також можна додавати до документа knitr, як у цьому прикладі:

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

@

Рисунок \ref{fig:plot1} — це проста гістограма.

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

[Відкрийте цей `knitr` приклад в Overleaf](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Ця гістограма використовує дані, збережені в "data.txt", у поточному робочому каталозі. До фрагмента передано кілька параметрів, пов'язаних із рисунком.

`plot1`Це мітка, що використовується для посилання на графік. Префікс "fig:" є обов'язковим. У прикладі ви бачите, що на рисунок посилаються за допомогою `\ref{fig:plot1}`.`fig.pos="t"` параметр позиціювання. Це той самий, що використовується в [середовищі figure](https://learn.overleaf.com/learn/Positioning_images_and_tables#The_figure_environment).`fig.height=4, fig.width=4`Ширина та висота рисунка.`fig.cap="First plot"`Підпис до рисунка.

### Зовнішні скрипти R

Ви можете імпортувати частини зовнішнього скрипта R у документ knitr. Це дуже корисно, оскільки досить поширено спочатку писати й налагоджувати скрипт у зовнішній програмі, а потім включати його до документа.

Припустімо, що ми маємо такий код R у файлі під назвою `mycode.R` який ми включаємо до нашого документа LaTeX:

```r
## ---- myrcode1
# Створіть послідовність чисел
 X = 2:10

## ---- myrcode2
# Виведіть основні статистичні показники
summary(X)
```

Зверніть увагу на рядки:

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

і

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

Вони позначають початок фрагмента коду і є обов'язковими, якщо ви хочете використати цей скрипт у нашому документі, як показано в наступному фрагменті коду:

```r
Нижній фрагмент не буде виведено

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

Код має з'явитися тут

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

Перший фрагмент не друкується і використовується лише для імпорту скрипта за допомогою команди `read_chunk("mycode.R")` . Саме тому параметр `echo=FALSE` встановлено. Крім того, скрипти не можна кешувати. Після імпорту скрипта ви можете вивести фрагмент, використовуючи мітку, яку ви задали після `## ----`. У цьому випадку це `myrcode2`.

Ми зібрали всі фрагменти коду статті в проєкт, який [ви можете відкрити в Overleaf](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

### Довідковий посібник

Деякі параметри фрагментів:

* `results`. Змінює поведінку результатів, згенерованих кодом R. Можливі значення:
  * `markup` Використовуйте LaTeX для форматування виводу.
  * `asis` Друкує необроблені результати з R.
  * `hold` Утримує результати виводу та переносить їх у кінець фрагмента.
  * `hide` Приховати результати.
* `echo`. Чи включати вихідний код R. Інші параметри:
  * `echo=2:3` друкує лише другий і третій рядки;
  * `echo=-2:-3` виключає лише другий і третій рядки.
* `cache`. Чи кешувати фрагмент коду. Можливі значення: `TRUE` і `FALSE`
* `highlight`. Чи підсвічувати вихідний код. Можливі значення: `TRUE` і `FALSE`
* `background`. Колір фону фрагмента. Можна використовувати формати rgb і HTML. Значення за замовчуванням: *"#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/uk/navichki/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.
