Когда вы построили много регрессий, проверили много гипотез и нарисовали кучу графиков, и нашли кое-что интересное, вы можете донести свои результаты до других людей. Ну, соответственно, обычно используют там Tex или Word, и, соответственно, вы берете ваши готовые картинки и вставляете их, соответственно, в вашу работу. Ну, оказывается, это можно сделать автоматически с помощью грамотного программирования так, что вам не придется практически ничего менять в вашей работе. Если вдруг у вас появятся новые наблюдения или вы обнаружите ошибку, все может пересчитаться само. Поэтому мы сейчас покажем, как комбинировать человекочитабельный текст с инструкциями компьютера. Это называется грамотное программирование. Нажимаем вот здесь + и выбираем не R Script на этот раз, а R Markdown. Здесь по умолчанию предлагается вариант, что мы хотим видеть на выходе: HTML-файл для публикации в сети, PDF, соответственно, здесь будет использоваться LaTex, или Word. Ну, давайте сначала начнем с варианта с Word. Озаглавим нашу работу «Нано исследование». Здесь вот обязательно нужно пометить, что язык у нас русский. А это все, вот мы пример этот удалим. Мы будем писать свое исследование. Поехали! В этом исследовании мы рассмотрим цены на квартиры в Москве. Теперь вставляем блок кода, который будет загружать наши данные и необходимые пакеты. Вот здесь вот есть Code – Insert Chunk. Chunk – это кусок кода. Вот тут Ctrl + Alt + I в Windows. Ctrl + Alt + I нажимаем, и появляется серенький блок кода. Это уже не человекочитабельная команда, а команда, адресованная R. Ну, мы их скопируем. У нас вот здесь вот вначале подгружались пакеты. Скопируем это вот, это подгружаются пакеты. Теперь загрузим наши данные. Так. Теперь мы можем сказать, что, скажем, в нашем наборе данных, и маленький блок, адресованный R. Кавычка, одинарная кавычка, но она, правда, скошена в другую сторону. Эта кавычка, как правило, находится на клавиатуре над буквой «ё». Кавычка в обратную сторону («`») команда для r, количество строк в табличке f. В нашем наборе данных команда `r nrow(f)`, то есть nrow(f) – это обычная команда r, наблюдений. Скажем, средняя цена квартиры равна, и снова маленький блок `r mean(f$price)` `r mean(f$price)` тысяч y.e. Теперь давайте построим какой-нибудь график. Красивый график, ну, выбираем код для красивого графика, снова блок кода для r. Вот несколькими кавычками, ``` {r}, ``` – это блок из нескольких строчек, а если это одна короткая команда, а не много строчек, то тогда мы используем такой, более простой синтаксис. И отсюда мы возьмем, соответственно, что нам надо сделать. Нам надо преобразовать типы данных, сказать, что эти переменные факторные: walk, brick, floor и code, и дальше мы можем построить какой-нибудь график. Например, возьмем вот этот. Дальше оценим, оценим и сравним три модели. Вставляем снова серенький блок кода, вот у нас три модели оцениваются, и вот здесь вот они сравниваются в одной табличке. И соответственно, можем тут написать, что у нас лучше оказалась модель 2. Теперь сохраняем этот файл, пусть это будет nano_research.Rmd, это означает комбинацию R Markdown, мы сохраняем, и, соответственно, теперь, если мы все правильно перенесли, эти команды исполняются, в принципе, их точно также можно протестировать, понажимав Ctrl + Enter, то мы можем создать готовый, в данном случае, «вордовский» документ. Ну, тут надо чуть-чуть подождать, потому что компьютер что сделает? Он выкусит команды, адресованные r, исполнит их, после этого соединит в один файл с расширением Markdown, а потом преобразует файл с расширением Markdown в Word. Ну, что мы тут видим? Вот оно, наше «Нано исследование», это обычный «вордовский» файл. Тут автоматом появились графики. Вот здесь вот, правда, куча информации о загрузке пакетов, но это мы сейчас уберем, конечно, в исследовании все это скрывают, а вот здесь уже вот автоматом все посчитано. Все, значит, циферки вставлены вместо команд r. Вот он, график наш, вставлен, вот она, табличка. Она, правда, пока не очень красивая, но это уже практически готовое исследование. Что нам осталось сделать, чтобы оно было красивым? Ну, во-первых, вот эту системную информацию о том, что вот, предупреждение, загружается такой-то пакет, он был создан под версией 3.1.2, у вас более старая, это нам, конечно, не нужно. Поэтому мы результаты этого блока, который надстроечный, вначале обычно любого проекта идет какой-то блок, который загружает данные, загружает пакеты и ничего содержательного не выводит, естественно, такой блок надо скрыть. И мы покажем, напишем тут опцию ```{r, include=FALSE}, то есть этот блок команд будет исполняться, но результаты, никто ничего не увидит. Давайте посмотрим, что получится. Ну, опять же, надо чуть-чуть подождать, и мы получаем на выходе «вордовский» файл с уже ну, практически готовым текстом. Чтобы полностью облагородить наше «Нано исследование», мы скроем команды r. Соответственно, вот здесь вот библиотека knitr, которая на самом деле реализует взаимодействие между r и преобразует все в результате в Markdown, а потом в Word, здесь мы укажем опцию. Давайте подгрузим библиотеку knitr, нажмем здесь Ctrl + Enter, opts_chunk выберем, укажем, что нам их надо установить, и установим опции, что нам не надо показывать код r, то есть echo=FALSE, и всякие системные сообщения команд о том, что что-то там произошло или что-то не произошло, мы тоже показывать не будем, скроем их. Сохраним наш .Rmd-файл и снова попробуем посмотреть, что у нас получится на выходе. Соответственно, сейчас эти опции о том, что надо скрывать код, приведут к тому, что код виден не будет, и мы получим практически в чистом виде исследование. Вот эти все числа рассчитаны автоматически, мы их не набирали руками, а получили результат. Единственное, что мешает совсем красивому исследованию, – это не очень удачная табличка. Она, конечно, совершенно понятна, но что-то тут, какой-то Calls, что-то вот тут какие-то подчеркивания и диезы двойные, что не очень красиво. Соответственно, последний шаг облагораживания – это использование специального формата таблиц, который подходит под Word или под LaTex. Что мы сделаем? Мы воспользуемся функцией, которая не просто вот такие стандартные таблички моноширинным шрифтом выводит, а мы немножко тут видоизменим настройки. Мы укажем две вещи. Первое, мы укажем здесь опцию, что результат команд не надо обрабатывать стандартным способом, не надо справа ставить диезы, закрашивать его в серый цвет, то есть укажем, что результаты as is, «такие как есть». И дальше мы воспользуемся командой, которая специальным образом обрабатывает таблицы так, чтобы их потом понимали и Word, и LaTex. Мы здесь укажем pander(mtable), то есть 2 вида изменения, и посмотрим, что у нас получится на этот раз. И, соответственно, на этот раз у нас есть текст исследования с графиком и с красивой табличкой. Помимо возможности получения результата готового в формате Word, мы можем также получить готовый результат в Texе и, следовательно, в PDF. Для этого мы просто выбираем другую опцию, вместо Knit Word указываем Knit PDF, ждем некоторое время. Происходит за кадром сложная цепочка операций. r оценивает модели, строит графики, из r Markdown'a получается просто Markdown, потом Markdown превращается в «теховский» файл, и потом уже «теховский» файл превращается в PDF. Здесь PDF, красивые таблицы, графики. Конечно, для отсылки в настоящий журнал или презентации, нам не хватает здесь более аккуратных надписей, названий строк, названий столбцов, подписей осей и графиков, но тем не менее, это уже готовый PDF, который можно доработать до совсем идеального состояния. Если вам все-таки по каким-то причинам нужно увидеть сам «теховский» файл, который был создан за кадром, то вот здесь вот в опциях, нажав на шестеренку и выбрав Advanced, мы можем поставить опцию Keep tex source file used to produce PDF, и, соответственно, тогда у нас будут сохранены и «теховский» исходники.