Saltar al contenido

Gestión de dependencias en R

Verificamos de forma cada una de las noticias en nuestra página web con el objetivo de enseñarte en todo momento información certera y actual.

Solución:

Desafortunadamente, Depends: dentro de DESCRIPTION: archivo es todo lo que obtiene por las siguientes razones:

  • R en sí mismo es razonablemente multiplataforma, pero eso significa que necesitamos que funcione en todas las plataformas y sistemas operativos.
  • Codificación Depende: más allá de los paquetes R requiere codificar Depende en un portátil forma en todos los sistemas operativos — buena suerte codificando incluso algo simple como ‘una biblioteca de gráficos PNG’ de una manera que pueda resolverse sin ambigüedades en todos los sistemas
  • Windows no tiene un administrador de paquetes
  • AFAIK OS X no tiene un administrador de paquetes que mezcle lo que envía Apple y lo que brindan otros proyectos de código abierto
  • Incluso entre las distribuciones de Linux, no obtiene consistencia: simplemente tome RStudio como ejemplo que viene en dos paquetes (¡que proporcionan sus dependencias!) para RedHat/Fedora y Debian/Ubuntu

Es este un problema difícil.

Como medida provisional, he escrito un nuevo paquete rbundler. Instala las dependencias del proyecto en un subdirectorio específico del proyecto (p. ej. /.Rbundle), lo que permite al usuario evitar el uso de bibliotecas globales.

  • rbundler en Github
  • rbundler en CRAN

hemos estado usando rbundler en Opower desde hace unos meses y he visto una gran mejora en el flujo de trabajo del desarrollador, la capacidad de prueba y el mantenimiento de los paquetes internos. En combinación con nuestro repositorio interno de paquetes, hemos podido estabilizar el desarrollo de una docena de paquetes para usar en aplicaciones de producción.

Un flujo de trabajo común:

  • Echa un vistazo a un proyecto de github
  • cd en el directorio del proyecto
  • Enciende R
  • Desde la consola R:

    biblioteca (rbundler)

    paquete(‘.’)

Todas las dependencias se instalarán en ./.Rbundley un .Renviron Se creará un archivo con el siguiente contenido:

R_LIBS_USER='.Rbundle'

Cualquier operación de R que se ejecute desde este directorio del proyecto se adherirá a la biblioteca y las dependencias del paquete específicas del proyecto. Tenga en cuenta que, si bien este método usa la DESCRIPCIÓN del paquete para definir las dependencias, no es necesario que tenga una estructura de paquete real. De este modo, rbundler se convierte en una herramienta general para administrar un proyecto R, ya sea un script simple o un paquete completo.

los packrat El paquete está diseñado precisamente para lograr lo siguiente:

instale los paquetes necesarios en una biblioteca específica del proyecto sin afectar la instalación global de R

Permite instalar diferentes versiones de los mismos paquetes en diferentes bibliotecas de paquetes locales del proyecto.

Estoy agregando esta respuesta a pesar de que esta pregunta tiene 5 años, porque aparentemente esta solución aún no existía en el momento en que se hizo la pregunta (hasta donde puedo decir, packrat apareció por primera vez en CRAN en 2014).

Actualización (noviembre de 2019)

El nuevo paquete R renv sustituido packrat.

Si te gustó nuestro trabajo, tienes la libertad de dejar una reseña acerca de qué le añadirías a esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *