Как отлаживать код в RStudio и создавать новый проект на R
Новогодним подарком в этом году стали для меня новая команда и проект на языке R, о котором в тот момент я знал немного. Поначалу было трудно и не понятно, но время шло, картинка прояснялась. С чем-то удалось разобраться, что-то пришлось принять как есть. И вот, спустя два с половиной месяца работы на R, я решил поделиться опытом и рассказать о своих первых шагах в этом проекте. Я не буду описывать все свои душевные муки и эмоции, которые переполняли меня в процессе освоения этого очень интересного языка, а сосредоточусь на технической стороне вопроса. Цель моей статьи рассказать о том, как отлаживать код в RStudio и создавать новый проект на R.
Первое с чем пришлось мне столкнуться – это отладка приложения. В RStudio есть возможность выделить отдельные участки кода и запустить их. Это очень помогает при работе с R markdown, так как в них, в режиме Debug, нельзя поставить точку останова. А выделить строчки и запустить их можно где угодно.

Причем переменные, которые будут вызываться в этих строчках, он берет из глобального окружения. Получается, что для проверки того, как работает та или иная функция достаточно создать глобальные переменные, построчно запускать код из этих функций и смотреть что происходит. Я работаю в RStudio, где на вкладке Global Environment можно увидеть значения этих переменных.

Создают или меняют значения этих переменных через Console.

Но кроме переменных есть другая проблема. Когда вы выполняете команды построчно, он может не найти код функций, которые вызываются в тех строчках, которые вы выполняете. Для этого их тоже надо загрузить в память. Чтобы это сделать, надо открыть файл с кодом этой функции и нажать на кнопку Source.

Есть в RStudio и классический Debug режим. В нем присутствует возможность ставить Break Points, с возможностью запуска в режиме отладки и функция browser(), встретив которую R прерывает выполнение кода, позволяя отладить приложение. Но в нашем проекте это не получило широкого распространения из-за работы с R markdown.
Следующее с чем я столкнулся в R – это два типа проектов: обычный проект (New Project) и проект типа package (R Package). Когда я пришёл в команду, там был некий микс из этих 2-х. Вроде был Package, но он не собирался и запускали его через RScrtipt. Сейчас, благодаря усилиям моих коллег, у нас работающий R Package.

Обычный проект (New Project) предлагает написать R-скрипт файлы, где один файл подключается к другому через функцию source(). Таким образом, при запуске скрипта получается как бы “один очень большой файл”, в который включены все файлы проекта. Это не всегда удобно и не очень гибко.

В отличие от обычного проекта, проект типа R Package предлагает нам написать библиотеку функций на R, которую потом можно будет установить на любую машину и вызывать эти функции внутри своего R-скрипт файла. Есть правда один нюанс. Функции доступны только из R-скрипта. Поэтому, прежде чем начать с ними работать, нужно будет создать такой скрипт и уже в нем прописать вызовы этих функций. Запускается он в консоли с помощью команды: Rscript. Чтобы это работало нужно в переменных окружения прописать путь к файлу Rscript.exe. На моей машине этот путь выглядит так: C:\Program Files\R\R-4.0.3\bin. При создании своих функций в проекте типа Package, в режиме разработки, следует пользоваться функцией load_all(), которая подтягивает все изменения в память. Если ей не пользоваться, то при всяком изменении кода в проекте, для того чтобы эти изменения вступили в силу, надо запустить процесс инсталляции, что R делает не быстро.
Теперь о проекте R-Package: В отличие от простого проекта, он содержит некую обязательную структуру и специальные файлы. Это:
- файл DESCRIPTION с описанием пакета,
- папка man для описания функций,
- файл NAMESPACE со списком доступных функций создаваемого пакета,
- папка с названием R, в которой должен лежать ваш код на языке R
- файл .Rbuildignore со списком того, что не входит в пакет при его сборке
- файл .Rhistory, который хранит историю команд в консоли
- .RData хранит содержимое вкладки Environment, точнее данные которые были загружены в память при работе с проектом
При создании проекта типа R Package используют утилиту roxygen2. Она помогает создать документацию для вашего пакета. Идея в том, что вы описываете каждую функцию прямо в коде, а утилита уже сама переносит это описание в папку man, конвертируя в необходимый формат и добавляет информацию о функциях в файл NAMESPACE. Подробнее о roxygen2 тут.
Ещё есть полезные пакеты для настройки проекта, которые используют практически во всех инструкциях по его созданию, как минимум во всех тех, что я нашёл в Интернет:
- devtools – основной пакет, в котором собранно большинство команд для работы с проектом в их упрощенном виде
- usethis – пакет помощник, упрощающий выполнение многих рутинных операций
- testthat — пакет для написания Unit тестов
- covr — пакет для проверки кода на покрытие unit тестами
Для удобства работы, в RStudio уже встроены средства проверки вновь создаваемого проекта (Check Package) и его тестирования (Test Package).

Вроде бы всё, что хотел, рассказал, но лучше один раз увидеть, чем сто раз прочитать. Ниже видео о том, как начать работать с R:
Как пользоваться R-Studio
R-studio — это набор программ для восстановления данных и файлов из жесткого диска. У приложения есть версии, как для Windows и Mac, так и для Linux. Программа платная, но имеет бесплатную версию, и считается одной из лучших программ для восстановления данных.
Программа проводит полный анализ диска и определяет какие файловые системы были на нем до этого, а затем позволяет восстановить файлы из этих файловых систем. Интересно, что можно обнаружить файловые системы, которые были на диске достаточно давно и даже из них восстановить файлы. Мы ранее рассматривали свободные утилиты для восстановления данных Linux, а в этой статье поговорим о том, как пользоваться R-Studio.
Установка R-Studio
Вы можете скачать установщик программы для своей операционной системы на официальном сайте. Для Linux здесь есть deb и rpm пакеты, которые установятся в большинстве дистрибутивов.


Например, в Ubuntu, после того как пакет будет загружен, перейдите в папку загрузок и запустите установку:
/Загрузки/
$ sudo dpkg -i RStudio*

После завершения установки ярлык программы появится в главном меню:

В Windows вам будет достаточно пройти несколько шагов мастера.
Как пользоваться R-Studio
Теперь перейдем ближе к работе с утилитой, рассмотрим ее первый запуск интерфейс и восстановление файлов.
1. Запуск R-Studio
При первом запуске программа попросит лицензию. Не мне вам рассказывать где искать бесплатные лицензии, или можете нажать кнопку Demo. Для восстановления небольших файлов вполне сойдет. Максимальный размер файла для восстановления — 256 кб.

Если в окне программы полностью пусто, то нужно запускать ее через терминал с помощью такой команды:
Теперь все должно работать.
2. Интерфейс R-Studio

Интерфейс программы достаточно типичен для такого рода утилит. Его можно разделить на такие части:
- Главное меню — содержит все доступные действия и функции;
- Панель инструментов — сюда вынесены основные функции программы;
- Вкладки — переключение между различными областями;
- Рабочая область — разделена на две части, в левой стороне находится список дисков или папок, а в правой подробная информация о них;
- Статус бар — в самом низу окна находится статус бар, где отображаются сообщения о работе программы.
В рабочей области главного окна вы будете видеть список всех дисков и разделов. По умолчанию программа на английском, но вы можете выбрать русский язык. Для этого откройте меню «Help» -> «Language» и выберите «Русский»:
3. Простое восстановление
Напоминаю, что независимо от файловой системы, файлы не удаляются физически с диска во время удаления. Зато вы можете потерять их навсегда, если файловая система их чем-либо перезапишет. Если вы случайно удалили некоторые данные лучше сразу отключить этот жесткий диск от компьютера и проводить восстановление, подключив его в качестве внешнего диска к другому устройству. Мы можем просканировать весь раздел и определить все файловые системы, остатки которых на нем еще есть, но существует более простой способ. Можно работать только с этой файловой системой. Для этого просто выберите нужный раздел и нажмите на панели инструментов «Показать содержимое раздела»:

Все удаленные файлы будут помечены красным крестиком. Чтобы восстановить их будет достаточно нажать кнопку «Восстановить» на панели инструментов:


Далее, нужно только выбрать папку, куда будут восстановлены файлы. Ни в коем случае не восстанавливайте все на тот же раздел, это может стереть то, что еще можно было спасти.
3. Сканирование раздела
Если вы хотите восстановить все данные, нужно просканировать нужный раздел, чтобы обнаружить все файловые системы, которые там были и с которыми может работать утилита. Для этого выберите нужный раздел и нажмите кнопку «Сканировать». Этот процесс может занять длительное время, прогресс будет отображаться в правой части рабочей области:


После завершения сканирования вы увидите все доступные файловые системы. Выберите одну из них и нажмите «Показать содержимое диска». Кстати, та же опция доступна из контекстного меню:

Теперь, как и в предыдущем случае вы можете видеть все доступные файлы и те, которые можно восстановить помечены красным крестиком. Кроме того, вы можете отметить галочками нужные файлы в правой части и восстановить их группой:

Если это медиа файл или текстовый, то вы можете его открыть прямо в программе, без того, чтобы выполнить восстановление данных rstudio.

4. Поиск файлов
Очень часто в прошлых файловых системах очень запутанная структура каталогов и вы не всегда помните что и где находилось. Но в программе есть встроенные возможности поиска. Для настройки поиска нажмите «Найти/отменить»:

В открывшемся окне вы можете выбрать где нужно искать, какие файлы искать, какого формата, нужно или искать каталоги и так далее. В выпадающем списке в самом верху окна нужно выбрать параметр, по которому будем искать, например, расширение, имя файла или регулярное выражение.
После завершения настройки нажмите «Ok». В правой части рабочей области будут отображены все найденные файлы и вы можете их восстановить.

5. Создание образов
Когда вы работаете с диском, на котором есть важные удаленные файлы, всегда есть риск что-то повредить. Поэтому вы можете создать образ и работать уже с ним. Для этого выберите на панели инструментов пункт «Создать образ»:

Процесс создания образа может занять достаточно долгое время. Затем вы можете выбрать пункт «Открыть образ» и продолжить работать с полученным образом как с обычным жестким диском.
Выводы
Теперь вы знаете как пользоваться r studio восстанавливаем данные. Удаление важных данных происходит не так часто. Но если это случится, то нужно иметь инструменты, с помощью которых вы смогли бы все вернуть. В этой статье мы рассмотрели как пользоваться программой R-Studio. Она самая популярная, но если у вас достаточно простая задача, то перед использованием этого инструмента можно попробовать свободные утилиты, такие как testdisk или photorec.
R-Studio инструкция как пользоваться
Назначение: восстановление информации при повреждении файловой системы, удалении файлов, удалении или пересоздании разделов, переустановки ОС, сборка и восстановление данных с массивов RAID-0, RAID-5, RAID-6, JBOD, виртуальных дисков платформ виртуализации (VMware, VirtualBox, QEMU).
Поддерживаемых файловые системы: FAT12, FAT16, FAT32, NTFS, NTFS5 (созданная и используемая в Windows 2000 /XP/2003/Vista/7, exFAT, ReFS (новая файловая система, представленная Microsoft в Windows 2012 Server), Ext2/3/4FS (созданные в Linux или другой ОС), HFS, HFS+, HFSX, and UFS1, UFS2, UFS BigEndian (используемые в ОС FreeBSD, OpenBSD, и NetBSD).
Автор: R-Tools Technology Inc, www.r-tt.com
Пример практического использования R-Studio
Рассмотрим как восстановить данные на конкретном примере.
Дано: USB-flash SanDisk Ultra 32GB.
Симптом: Windows при попытке открыть диск просит его отформатировать, ниже снимок экрана.


Важно заметить, что сама флешка исправна, но повреждён раздел. Раздел или том — понятия исключительно логические, том — более широкое понятие, может состоять из нескольких физических носителей, но, тем не менее, видится, как единое пространство.
И так, запускаем программу. В примере используется Demo-версия с ограничением по размеру восстанавливаемых файлов.
В среде Windows Vista и старше программу нужно запускать от имени администратора даже, если ваша учётная запись имеет права администратора.
В окне Drives слева видим список устройств и разделов. Справа, в Properties, свойства выбранного устройства или раздела. Сканировать на предмет поиска файловых систем и данных можно как всё устройство, так и существующие разделы или можно задать область сканирования вручную.



- Simple – выводит только индикатор прогресса сканирования
- Detailed – информация о найденных загрузочных секторах, файловых системах, файлах документов, если включена Extra search
- None – никакой уточняющей информации о сканировании не выводится.


- Зелёный — найдена файловая система и boot-сектор — самый лучший вариант
- Оранжевый — найдена файловая система, но нет загрузочного сектора, присутствует часто в нескольких вариантах, отличающихся количеством восстановимых данных
- Красный — найден только загрузочный сектор без файловой системы, причём их может быть много, как правило интереса не представляют.





Output folder – нужно указать, куда сохранять данные. Остальное можно оставить как есть.
Внимание! Никогда не сохраняйте данные на тот же диск с которого Вы их восстанавливаете. Иначе восстановленные файлы будут записываться на место восстанавливаемых файлов, что приведёт к их необратимому повреждению.

Некоторые параметра стоит изменить во вкладке Advanced.
- prompt – спрашивать на каждом случае повтора
- rename – переименовывать автоматически
- overwrite – перезаписывать
- skip – пропускать (стоит выбрать, чтоб не увеличивать объём данных).
- prompt – спрашивать каждый раз
- rename and change invalid symbols to – переименовывать, заменяя недопустимые символы на заданный символ
- skip – просто пропускать (выбрать, часто при первавильном имени содержимое тоже повреждено).
- prompt – спрашивать каждый раз
- remove – удалять (выбрать).
Не всегда сканирование даёт такой превосходный результат, как в данном примере. Чтобы показать, какой может быть результат сканирования, откроем другой, отмеченный красным, вариант восстановления и увидим следующее.

Как видно на иллюстрации, большинство папок отмечено красным знаком вопроса. То, что не отмечено им внутри пустые, а окно с логом переполнено ошибками. Данный результат не содержит практически полезной информации.