Я також шукав святий грааль правильного робочого процесу для складання великого проекту R. Торік я знайшов цей пакет під назвою rsuite , і, звичайно, це було те, що я шукав. Цей пакет R був явно розроблений для розгортання великих проектів R, але я виявив, що він може бути використаний для проектів R менших, середніх і великих розмірів. Я дам посилання на приклади реального світу через хвилину (нижче), але спочатку я хочу пояснити нову парадигму побудови проектів Rrsuite
.
Примітка. Я не творець і не розробник 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 у вигляді поштового файлу та поділитися ним з колегами. Він запуститься, якщо ваші колеги встановлять ту ж версію R.
Інший варіант - це створення контейнера всього проекту в Ubuntu, Debian або CentOS. Отже, замість того, щоб ділитися поштовим файлом зі збіркою вашого проекту, ви ділитесь цілимDocker
контейнером з вашим проектом, готовим до запуску.
Я багато експериментував rsuite
шукаючи повну відтворюваність, і уникаю залежно від пакетів, які встановлюють у глобальному середовищі. Це неправильно, оскільки щойно ви встановлюєте оновлення пакета, проект, частіше за все, перестає працювати, особливо ті пакунки з дуже конкретними викликами до функції з певними параметрами.
Перше, що я почав експериментувати - це bookdown
електронні книги. Мені ніколи не пощастило мати відлік, щоб пережити тест часу довше шести місяців. Отже, те, що я зробив, - це перетворення оригінального проекту з відстеження книг, щоб слідувати rsuite
рамкам. Тепер мені не потрібно турбуватися про оновлення мого глобального R середовища, оскільки проект має власний набір пакунків у deployment
папці.
Наступне, що я зробив - це створити проекти машинного навчання, але в rsuite
дорозі. Головний, оркестровий проект у верхній частині, і всі підпроекти та пакети, які мають контролюватися майстром. Це дійсно змінює спосіб кодування з R, роблячи вас більш продуктивними.
Після цього я почав працювати в новій шахті під назвою rTorch
. Це було можливо здебільшого через rsuite
: це дозволяє думати і йти великим.
Одна порада, хоча. Навчитися rsuite
непросто. Оскільки він представляє новий спосіб створення R-проектів, він відчуває важкість. Не лякайтеся при перших спробах, продовжуйте підніматися по схилу, поки не зробите це. Це вимагає передових знань про вашу операційну систему та про вашу файлову систему.
Я думаю, що один день RStudio
дозволяє нам генерувати оркестрові проекти, як rsuite
це робиться в меню. Це було б приголомшливо.
Посилання:
RSuite GitHUb repo
r4ds облік
кери і блискучий підручник
модерн-книга-rsuite
interpretable_ml-rsuite
IntroMachineLearningWithR-rsuite
clark-intro_ml-rsuite
hyndman-bookdown-rsuite
statisti_rethinking-rsuite
fread-орієнтири-rsuite
dataviz-rsuite
роздріб-сегментація-h2o-навчальний посібник
telco-customer-churn-tutorial
sclerotinia_rsuite