2  Скрипты, RMarkdown/Quarto и проекты

Выполнять код, написанный на языке R, можно из консоли. Все выполненные комманды сохраняются в истории (панель History справа, там же где и Environment), однако для удобства вопроизведения анализа лучше сохранять код в файле - R скрипте или Rmd/Qmd документе.

2.1 R скрипт

Самый простой вариант для хранения кода, написанного на R, это создание R скрипта [R script] - файла с расширением .R. В простейшем случае R скрипт - это последовательное перечисление всех комманд, которые нужны для вашего анализа данных.

Создать новый R скрипт можно следующим образом:

  • File -> New File -> R script (слева вверху в RStudio), либо
  • с помощью кнопки “создать новый файл”, расположенной ниже File, и R script, либо
  • с помощью сочетания клавиш Ctrl + Shift + N.

Когда вы создадите новый R скрипт, то в RStudio откроется новый пустой файл Untitled в панели для файлов (обычно над Консолью). Не забудьте сохранить новый файл и дайте ему имя, которое бы отражало его будущее содержание, чтобы дальше вам было удобно ориентироваться среди нескольких ваших скриптов. Как и в случае других файлов, в имени R скрипта лучше использовать латиницу. Если вы сами не укажите формат файла при сохранении, то RStudio сохранит файл в формате .R - то, что надо.

Весь код в скрипт можно записывать так же, как если бы вы писали его в Консоль - все нужные команды последовательно. Не забывайте указывать в скрипте, какие R пакеты необходимо подгрузить (library(...)), и как сохранять результаты, если необходимо.

Пояснения к коду и другую информацию, не являющуюся исполнимым кодом, можно записывать как комментарии - они отделяются от кода знаком #. Пример R скрипта представлен на рис. Рисунок 2.1.

Рисунок 2.1: Пример R скрипта

Чтобы запустить весь скрипт или выполнить несколько строчек можно воспользоваться кнопкой Run, расположенной справа сверху над открытым скриптом. Либо можно воспользоваться сочетанием клавиш Ctrl + Enter, чтобы выполнить одну строку кода - для этого указатель текущей строки должен находиться на нужной строке, или чтобы выполнить сразу несколько строк - для этого данные строки должны быть выделены целиком.

Результат выполнения кода из скрипта отображается в Консоли либо в панели Plots справа (если скрипт рисует графики).

2.2 Rmd/Qmd документ

R Notebook или R Markdown документы (файлы формата .Rmd), а также Quarto документы (файлы формата .qmd) позволяют писать код и проводить анализ с помощью R и одновременно с этим создавать документы-отчеты по этому анализу в разных форматах - html, pdf или word. Использовать Rmd документы удобно в тех случаях, когда хочется сразу же объединить код и результат этого кода в едином документе.

Для создания нового Rmd/Qmd документа в меню File -> New File можно выбрать либо R Notebook, либо R Markdown, либо Quarto document, большой разницы между ними нет. Если вы выбирете вариант R Markdown, то в открывшемся окошке настроек можете ничего не менять и нажать OK.

Новый Rmd документ уже содержит некоторый текст и код - небольшой туториал, по которому можно освоить основные идеи Rmarkdown формата (см. рис. Рисунок 2.2).

Рисунок 2.2: Пример Rmd документа

Во-первых, в самом начале файла записывается метаинформация о данном файле в формате YAML - это название документа (заголовок), имя автора, дата, формат генерируемого отчета и много всего другого. YAML шапка отделяется от всего остального содержимого файла тремя знаками минус ---.

Код на языке R в Rmd документе записывается в оформленных блоках кода [chunks]. Блоки кода обозначаются с помощью трех обратных апострофов, которые “обособляют” кусок кода (это может быть как одна строка, так и несколько) с обеих сторон. После начальных трех апострофов в фигурных скобках указывается буква r, сообщающая, что ниже идет код, написанный на языке R и который нужно читать и интерпретировать согласно правилам этого языка. Также внутри фигурных скобок можно указать имя блока кода (необязательно) и некоторые параметры. Внутри блока кода можно писать комментарии, обозначая их знаком #. Таким образом, блок кода в простейшем случае выглядит следующим образом:

```{r}
# Подгрузить пакет tidyverse для работы с табличными данными и графиками
library(tidyverse)

head(msleep) 

msleep %>% filter(vore == "herbi") # отфильтровать по столбцу
```

Текст в Rmd документе пишется вне блоков кода, как обычный текст. Заголовки начинаются со знака #, количество этих знаков определяет уровень заголовка. Выделение слов курсивом или жирным осуществляется с помощью знаков * или ** в начале и конце слов, которые нужно выделить.

Выполнять код из блоков кода можно так же как и в R скрипте с помощью Ctrl + Enter, или использовать кнопку с зеленым треугольником, расположенную у каждого блока кода, чтобы выполнить блок целиком. Результаты выполнения кода будут отображаться либо под соответствующим блоком кода (по умолчанию), либо в Консоли - это можно изменить в настройках Rmd документа (кнопка “шестеренка” -> Chunk Output Inline / Chunk Output in Console).

Чтобы сформировать отчет в формате html/pdf/word из Rmd документа нужно использовать кнопку с синим мотком пряжи Knit (рядом с “шестеренкой” в панели над открытым документом) или кнопку Preview, если Knit отстутствует. Маленький треугольничек рядом открывает список опций с форматами генерируемых отчетов.

Для создания отчета из Qmd документа нужно использовать кнопку Render.

2.3 R проект

Для удобства работы с отдельными проектами по анализу данных и прочим задачам в RStudio реализована идея R проектов. R проект можно представить как отдельный рабочий стол для одного вашего реального проекта в кабинете, где таких столов может быть очень много. Используя R проекты, вы не запутаетесь в том, где лежат ваши данные, ваши результаты и скрипты, и будете всегда уверены в том, что находитесь в нужной рабочей директории.

Рабочая директория - та директория, в которой R в данный момент “работает”. До файлов, находящихся в рабочей директории, “дотянуться” легко, а до остальных может быть посложнее. Чтобы определить рабочую директорию можно воспользоваться функцией getwd(), а чтобы сменить директорию - setwd("some/directory/path"). Обратите внимание, что путь до директории должен быть указан в кавычках.

R проект позволяет не задумываться о рабочих директориях. Когда вы открываете R проект, то рабочая директория автоматически сменяется на ту, в которой лежит соответствующий файл .Rproj.

Создать новый R проект можно следующим образом:

  • File -> New Project -> New Directory или Existing Directory -> New Project, либо
  • с помощью кнопки R в синем кубе слева или справа вверху в RStudio.

Когда вы создаете новый R проект в определенной директории, то в этой директории появляется файл your_project_name.Rproj. Когда вы закроете RStudio, снова открыть RStudio и сразу этот проект можно, “открыв” этот your_project_name.Rproj файл.

Организовавать файлы внутри рабочей директории проекта можно по-разному, один из вариантов представлен на рис. Рисунок 2.3.

Рисунок 2.3: Пример структуры R проекта

Почитать побольше про R проекты можно, например, здесь.