También he estado buscando el santo grial del flujo de trabajo adecuado para armar un proyecto R grande. El año pasado encontré este paquete llamado rsuite y, ciertamente, era lo que estaba buscando. Este paquete R se desarrolló explícitamente para la implementación de proyectos R grandes, pero descubrí que se puede usar para proyectos R más pequeños, medianos y grandes. Daré enlaces a ejemplos del mundo real en un minuto (a continuación), pero primero quiero explicar el nuevo paradigma de construir proyectos de R conrsuite
.
Nota. No soy el creador o desarrollador de rsuite
.
Hemos estado haciendo proyectos mal con RStudio; El objetivo no debe ser la creación de un proyecto o un paquete, sino un alcance mayor. En rsuite crea un superproyecto o proyecto maestro, que contiene los proyectos R estándar y los paquetes R, en todas las combinaciones posibles.
Al tener un superproyecto R, ya no necesita Unix make
para administrar los niveles inferiores de los proyectos R debajo; usa scripts R en la parte superior. Deja que te enseñe. Cuando crea un proyecto maestro rsuite, obtiene esta estructura de carpetas:
La carpeta R
es donde coloca sus scripts de gestión de proyectos, los que reemplazarán make
.
La carpeta packages
es la carpeta donde rsuite
se encuentran todos los paquetes que componen el superproyecto. También puede copiar y pegar un paquete que no es accesible desde Internet, y rsuite también lo compilará.
la carpeta deployment
es donde rsuite
escribirá todos los binarios de paquetes que se indicaron en los DESCRIPTION
archivos de paquetes . Entonces, esto hace que, por sí mismo, proyectes un tiempo accros totalmente reproducible.
rsuite
viene con un cliente para todos los sistemas operativos. Los he probado todos. Pero también puede instalarlo como un addin
RStudio.
rsuite
También le permite construir una conda
instalación aislada en su propia carpeta conda
. Este no es un entorno sino una instalación física de Python derivada de Anaconda en su máquina. Esto funciona junto con los R SystemRequirements
, desde los cuales puede instalar todos los paquetes de Python que desee, desde cualquier canal conda que desee.
También puede crear repositorios locales para extraer paquetes R cuando esté desconectado, o si desea construir todo más rápido.
Si lo desea, también puede construir el proyecto R como un archivo zip y compartirlo con sus colegas. Se ejecutará, siempre que sus colegas tengan instalada la misma versión R.
Otra opción es construir un contenedor de todo el proyecto en Ubuntu, Debian o CentOS. Entonces, en lugar de compartir un archivo zip con la compilación de su proyecto, comparte todo el Docker
contenedor con su proyecto listo para ejecutarse.
He estado experimentando mucho con rsuite
buscando la reproducibilidad total y evito depender de los paquetes que uno instala en el entorno global. Esto es incorrecto porque tan pronto como instala una actualización de paquete, el proyecto, la mayoría de las veces, deja de funcionar, especialmente aquellos paquetes con llamadas muy específicas a una función con ciertos parámetros.
Lo primero que comencé a experimentar fue con los bookdown
libros electrónicos. Nunca he tenido la suerte de tener un libro para sobrevivir a la prueba del tiempo por más de seis meses. Entonces, lo que hice fue convertir el proyecto original de bookdown para seguir el rsuite
marco. Ahora, no tengo que preocuparme por actualizar mi entorno global R, porque el proyecto tiene su propio conjunto de paquetes en eldeployment
carpeta.
Lo siguiente que hice fue crear proyectos de aprendizaje automático, pero en el rsuite
camino. Un proyecto maestro, orquestador en la parte superior, y todos los subproyectos y paquetes que estén bajo el control del maestro. Realmente cambia la forma en que codifica con R, haciéndolo más productivo.
Después de eso comencé a trabajar en un nuevo paquete mío llamado rTorch
. Esto fue posible, en gran parte, debido a rsuite
; te permite pensar e ir a lo grande.
Sin embargo, un consejo. Aprender rsuite
no es fácil. Debido a que presenta una nueva forma de crear proyectos R, se siente difícil. No te preocupes por los primeros intentos, continúa subiendo la cuesta hasta que lo hagas. Requiere un conocimiento avanzado de su sistema operativo y de su sistema de archivos.
Espero que algún día RStudio
nos permita generar proyectos de orquestación comorsuite
hace desde el menú. Sería genial.
Enlaces:
RSuite GitHUb repo
bookdown de r4ds
Keras y tutorial brillante
moderno-libro-rsuite
interpretable_ml-rsuite
IntroducciónMachineLearningWithR-rsuite
clark-intro_ml-rsuite
hyndman-bookdown-rsuite
statistic_rethinking-rsuite
fread-benchmarks-rsuite
dataviz-rsuite
retail-segmentation-h2o-tutorial
telco-customer-churn-tutorial
sclerotinia_rsuite