Я также искал святой Грааль правильного рабочего процесса для создания большого проекта R. В прошлом году я нашел этот пакет под названием rsuite , и, конечно, это было то, что я искал. Этот R-пакет был явно разработан для развертывания больших R-проектов, но я обнаружил, что его можно использовать для R-проектов меньшего, среднего и большого размера. Я дам ссылки на примеры из реальной жизни через минуту (ниже), но сначала я хочу объяснить новую парадигму построения R проектов сrsuite
.
Заметка. Я не создатель или разработчик rsuite
.
Мы работали над проектами совсем не так с RStudio; цель должна быть не в создании проекта или пакета, а в более широком масштабе. В rsuite вы создаете супер-проект или мастер-проект, который содержит стандартные проекты R и пакеты R во всех возможных комбинациях.
Имея супер-проект R, вам больше не нужен Unix make
для управления нижними уровнями R-проектов; Вы используете R скрипты наверху. Позволь мне показать тебе. Когда вы создаете мастер-проект rsuite, вы получаете следующую структуру папок:
В R
эту папку вы помещаете свои сценарии управления проектами, которые будут заменены make
.
Папка packages
- это папка, в которой rsuite
хранятся все пакеты, составляющие супер-проект. Вы также можете скопировать и вставить пакет, который недоступен из Интернета, и rsuite также создаст его.
папка deployment
, где rsuite
будет записывать все двоичные файлы пакетов , которые были указаны в пакетах DESCRIPTION
файлов. Таким образом, это само по себе делает проект полностью воспроизводимым по времени.
rsuite
поставляется с клиентом для всех операционных систем. Я проверил их все. Но вы также можете установить его как addin
для RStudio.
rsuite
также позволяет создавать изолированную conda
установку в своей собственной папке conda
. Это не среда, а физическая установка Python, созданная Anaconda на вашем компьютере. Это работает вместе с R SystemRequirements
, из которого вы можете установить все пакеты Python, которые вы хотите, с любого канала conda, который вы хотите.
Вы также можете создавать локальные репозитории, чтобы получать пакеты R, когда вы не в сети, или хотите собрать все быстрее.
Если вы хотите, вы также можете собрать проект R в виде zip-файла и поделиться им с коллегами. Он будет работать при условии, что у ваших коллег будет установлена та же версия R.
Другим вариантом является создание контейнера всего проекта в Ubuntu, Debian или CentOS. Таким образом, вместо того, чтобы делиться zip-файлом со сборкой проекта, вы делите весь Docker
контейнер с вашим проектом, готовым к запуску.
Я много экспериментировал с rsuite
поиском полной воспроизводимости и избегал зависимости от пакетов, которые устанавливаются в глобальной среде. Это неправильно, потому что как только вы устанавливаете обновление пакета, проект, чаще всего, перестает работать, особенно те пакеты с очень конкретными вызовами функции с определенными параметрами.
Первое, что я начал экспериментировать, было с bookdown
электронными книгами. Мне никогда не удавалось получить скидку, чтобы выдержать испытание временем более шести месяцев. Итак, что я сделал, так это конвертировал исходный проект bookdown, чтобы следовать rsuite
структуре. Теперь мне не нужно беспокоиться об обновлении моей глобальной среды R, потому что у проекта есть собственный набор пакетов в deployment
папке.
Следующее, что я сделал, было создание проектов машинного обучения, но в rsuite
пути. Главный, оркестрирующий проект наверху, и все подпроекты и пакеты должны находиться под контролем мастера. Это действительно меняет способ кодирования на R, делая вас более продуктивным.
После этого я начал работать в новом пакете под названием rTorch
. Это было возможно, в значительной степени, из-заrsuite
; это позволяет вам думать и развиваться.
Один совет, хотя. Обучениеrsuite
нелегко. Поскольку он представляет новый способ создания проектов R, он чувствует себя тяжело. Не смущайтесь с первых попыток, продолжайте подниматься по склону, пока не сделаете это. Это требует глубоких знаний вашей операционной системы и вашей файловой системы.
Я ожидаю, что один день RStudio
позволит нам создать такие проекты, какrsuite
делается из меню. Это было бы замечательно.
Ссылки:
RSuite GitHUb репо
r4ds bookdown
керас и блестящий учебник
moderndive книга-rsuite
interpretable_ml-rsuite
IntroMachineLearningWithR-rsuite
кларк-intro_ml-rsuite
Гайндман-bookdown-rsuite
statistical_rethinking-rsuite
Fread-тесты-rsuite
DataViz-rsuite
торгово-сегментация-h2o-учебник
телекоммуникационный-клиент-маслобойка-учебник
sclerotinia_rsuite