> 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/ru/navyki/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/ru/navyki/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.
