Я также искал святой Грааль правильного рабочего процесса для создания большого проекта 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