plots - ¿Entorno virtual en R?
text in r (3)
He encontrado varias publicaciones sobre mejores prácticas, reproducibilidad y flujo de trabajo en R, por ejemplo:
- Cómo aumentar la reproducibilidad a largo plazo de la investigación (particularmente usando R y Sweave)
- Ejemplos sustantivos completos de investigación reproducible usando R
Una de las principales preocupaciones es garantizar la portabilidad del código, en el sentido de que moverlo a una nueva máquina (posiblemente ejecutando un sistema operativo diferente) es relativamente sencillo y ofrece los mismos resultados.
Proveniente de un fondo Python, estoy acostumbrado al concepto de entorno virtual. Cuando se combina con una lista simple de paquetes requeridos, esto ayuda de alguna manera a garantizar que los paquetes y las bibliotecas instaladas estén disponibles en cualquier máquina sin demasiado problema. Claro, no es una garantía, los diferentes sistemas operativos tienen sus propias debilidades y peculiaridades, pero te llevan al 95% de tu camino.
¿Existe tal cosa dentro de R? Incluso si no es tan sofisticado. ¿Por ejemplo, simplemente manteniendo una lista de texto simple de los paquetes requeridos y un script que instalará alguno que falte?
Estoy a punto de comenzar a usar R en serio por primera vez, probablemente en conjunto con Sweave, ¡y lo ideal sería comenzar de la mejor manera posible! Gracias por tus pensamientos.
Echa un vistazo a roveR, la solución de gestión de contenedores R. Para obtener más información, consulte https://www.slideshare.net/DavidKunFF/ownr-technical-introduction , en particular la diapositiva 12.
Para instalar roveR, ejecute el siguiente comando en R:
install.packages("rover", repos = c("https://lair.functionalfinances.com/repos/shared", "https://lair.functionalfinances.com/repos/cran"))
Para aprovechar al máximo el poder de roveR (incluida la instalación de versiones específicas de paquetes para su reproducibilidad), necesitará acceso a un laiR: para CRAN, puede usar nuestra instancia de laiR en https://lair.ownr.io , para cargar sus propios paquetes y al compartirlos con su organización, necesitará una licencia de laiR. Puede contactar con nosotros en la dirección de correo electrónico en la presentación vinculada anteriormente.
El administrador de paquetes de Anaconda conda
admite la creación de entornos R
conda create -n r-environment r-essentials r-base
conda activate r-environment
He tenido una gran experiencia al usar conda
para mantener diferentes instalaciones de Python, tanto para usuarios específicos como para varias versiones para el mismo usuario. He probado R con conda
y el jupyter-notebook
y funciona muy bien. Al menos para mis necesidades, que incluye análisis de secuenciación de ARN utilizando el DEseq2
y paquetes relacionados, así como data.table
y dplyr
. Hay muchos paquetes de bioconductores disponibles en conda
través de bioconda y, según los comentarios sobre esta pregunta , parece que install.packages()
podría funcionar.
Voy a usar el comentario publicado por @cboettig para resolver esta pregunta.
Paquete de la rata
Packrat es un sistema de administración de dependencias para R. Le brinda tres ventajas importantes (todas ellas enfocadas en sus necesidades de portabilidad)
Aislado: la instalación de un paquete nuevo o actualizado para un proyecto no interrumpirá sus otros proyectos, y viceversa. Eso es porque packrat le da a cada proyecto su propia biblioteca de paquetes privada.
Portátil: transporte fácilmente sus proyectos de una computadora a otra, incluso a través de diferentes plataformas. Packrat facilita la instalación de los paquetes de los que depende su proyecto.
Reproducible: Packrat registra las versiones exactas del paquete de las que depende, y garantiza que esas versiones exactas sean las que se instalan donde quiera que vaya.
¿Que sigue?
Guía de tutorial: http://rstudio.github.io/packrat/walkthrough.html
Comandos más comunes: http://rstudio.github.io/packrat/commands.html
Usando Packrat con RStudio: http://rstudio.github.io/packrat/rstudio.html
Limitaciones y advertencias: http://rstudio.github.io/packrat/limitations.html