Ho anche cercato il santo graal del giusto flusso di lavoro per mettere insieme un grande progetto R. L'anno scorso ho trovato questo pacchetto chiamato rsuite e, certamente, era quello che cercavo. Questo pacchetto R è stato sviluppato esplicitamente per la distribuzione di progetti R di grandi dimensioni, ma ho scoperto che può essere utilizzato per progetti R di piccole, medie e grandi dimensioni. Darò collegamenti ad esempi del mondo reale in un minuto (sotto), ma prima voglio spiegare il nuovo paradigma di costruzione di progetti R conrsuite .
Nota. Non sono il creatore o lo sviluppatore di rsuite.
Abbiamo fatto progetti tutti sbagliati con RStudio; l'obiettivo non dovrebbe essere la creazione di un progetto o di un pacchetto ma di un ambito più ampio. In rsuite crei un super-progetto o un progetto principale, che contiene i progetti R standard e i pacchetti R, in tutte le combinazioni possibili.
Avendo un super-progetto R non è più necessario Unix makeper gestire i livelli inferiori dei progetti R sottostanti; usi gli script R in alto. Lascia che ti mostri. Quando si crea un progetto master rsuite, si ottiene questa struttura di cartelle:

La cartella Rè dove metti i tuoi script di gestione del progetto, quelli che sostituiranno make.
La cartella packagesè la cartella in cui sono contenuti rsuitetutti i pacchetti che compongono il super-progetto. Puoi anche copiare e incollare un pacchetto che non è accessibile da Internet, e anche rsuite lo costruirà.
la cartella deploymentè dove rsuitescriveranno tutti i file binari dei pacchetti indicati nei DESCRIPTIONfile dei pacchetti . Quindi, questo rende di per sé proiettare tempi di riproduzione totalmente riproducibili.
rsuiteviene fornito con un client per tutti i sistemi operativi. Li ho testati tutti. Ma puoi anche installarlo come addinper RStudio.
rsuiteconsente inoltre di creare un'installazione isolata condanella propria cartella conda. Questo non è un ambiente ma un'installazione fisica di Python derivata da Anaconda nella tua macchina. Funziona insieme a R SystemRequirements, da cui è possibile installare tutti i pacchetti Python desiderati, da qualsiasi canale conda desiderato.
Puoi anche creare repository locali per estrarre i pacchetti R quando sei offline o vuoi costruire il tutto più velocemente.
Se lo desideri, puoi anche creare il progetto R come file zip e condividerlo con i colleghi. Funzionerà, a condizione che i tuoi colleghi abbiano la stessa versione R installata.
Un'altra opzione è la creazione di un contenitore dell'intero progetto in Ubuntu, Debian o CentOS. Quindi, invece di condividere un file zip con la build del progetto, condividi l'intero Dockercontainer con il tuo progetto pronto per l'esecuzione.
Ho sperimentato molto nel rsuitecercare la piena riproducibilità ed evitare a seconda dei pacchetti che si installano nell'ambiente globale. Questo è sbagliato perché non appena si installa un aggiornamento del pacchetto, il progetto, il più delle volte, smette di funzionare, specialmente quei pacchetti con chiamate molto specifiche a una funzione con determinati parametri.
La prima cosa che ho iniziato a sperimentare è stata con gli bookdownebook. Non ho mai avuto la fortuna di avere un libro esaurito per sopravvivere alla prova del tempo più di sei mesi. Quindi, quello che ho fatto è stato convertire il progetto di bookdown originale per seguire il rsuiteframework. Ora, non devo preoccuparmi di aggiornare il mio ambiente R globale, perché il progetto ha il suo set di pacchetti nella deploymentcartella.
La prossima cosa che ho fatto è stata la creazione di progetti di machine learning ma tra l' rsuitealtro. Un master, orchestrando il progetto nella parte superiore e tutti i sottoprogetti e pacchetti che saranno sotto il controllo del master. Cambia davvero il modo in cui codifichi con R, rendendoti più produttivo.
Successivamente ho iniziato a lavorare in un mio nuovo pacchetto chiamato rTorch. Ciò è stato possibile, in gran parte, a causa di rsuite; ti fa pensare e andare alla grande.
Un consiglio però. L'apprendimento rsuitenon è facile. Poiché presenta un nuovo modo di creare progetti R, è difficile. Non sgomentare ai primi tentativi, continua a salire sul pendio fino a quando non ce la fai. Richiede una conoscenza avanzata del sistema operativo e del file system.
Mi aspetto che un giorno RStudioci consenta di generare progetti di orchestrazione come rsuitefa dal menu. Sarebbe fantastico.
link:
Repository RSuite GitHUb
bookdown r4ds
keras e tutorial lucido
moderndive-book-rsuite
interpretable_ml-rsuite
IntroMachineLearningWithR-rsuite
clark-intro_ml-rsuite
Hyndman-bookdown-rsuite
statistical_rethinking-rsuite
fread-benchmark-rsuite
DataViz-rsuite
retail-segmentazione-H2O dimostrativi
telco-cliente-churn dimostrativi
sclerotinia_rsuite