R

Validación y distribución de los paquetes R (Creación de paquetes en R 8ª y última parte)

Una vez finalizada la escritura de nuestro paquete, incluida la escritura de las pruebas automáticas, la documentación y las viñetas es necesario distribuirlo. En el caso de que los paquetes sean públicos y cumplan las normas del CRAN es posible enviarlo a para su aprobación. Aunque este no es el único camino para distribuir el trabajo. Ya que se pueden distribuir como archivos comprimidos, repositorios Git o, incluso, mediante un repositorio corporativo. En esta última entrada se va a explicar cómo generar los paquetes y las repasar las opciones que tenemos para la distribución de los paquetes R.

Esta entrada forma parte de la serie “Creación de paquetes en R” cuyo código se puede encontrar en el repositorio y consta de las siguientes ocho entradas:

  1. Creación de paquetes en R
  2. El archivo DESCRIPTION
  3. Pruebas automáticas con testthat
  4. Pruebas avanzadas con testthat
  5. Medir la cobertura de las automáticas unitarias
  6. Documentación de los paquetes
  7. Creación de vignette
  8. Validación y distribución de los paquetes

Validación del paquete

Posiblemente una de las funciones más importantes del paquete devtools es check(), con la que se puede comprobar si nuestro paquete cumple con los requisitos para subir al CRAN. Aunque este no sea el destino de nuestro paquete no es una mala idea ejecutar este comando para comprobar si falta algo, por ejemplo, la documentación de alguna función.

Para ejecutarlos simplemente debemos cargar el paquete con devtools::load_all() y posteriormente ejecutar devtools::check(). El tiempo de ejecución puede ser más o menos largo dependiendo del tamaño de nuestro paquete y los ejemplos de código que se han usado en el paquete.

La información que nos encontraremos al ejecutar el comando son los errores, advertencias y otras recomendaciones que nos hace el validador. Obviamente en el caso de que aparezca algún error lo es necesario resolverlo, al igual que las advertencias. Si todo va viene nos encontraremos con un mensaje como el siguiente.

Compilación del paquete

Ahora se puede generar el paquete, para lo que se puede usar el comando de devtools que vimos la primera semana: devtools::build(). El que creará un archivo zip o tar.gz con el contenido.

Así podemos enumerar las funciones que deberíamos lanzar antes de crear un paquete con devtools:

devtools::load_all()        # Carga el paquete
devtools::test()            # Ejecuta las pruebas automáticas
devtools::document ()       # Crea la documentación
devtools::build_vignettes() # Crea las viñetas
devtools::check()           # Valida el paquete según los estándares de R
devtools::build()           # Crea el paquete

Adicionalmente es aconsejable usar covr para medir el grado de cobertura de nuestras pruebas automáticas.

Distribución de paquetes R

Ahora ya se puede distribuir el paquete. Para esto se puede usar el archivo generado en el paso anterior u otras opciones como Git, sin descartar la publicación en el CRAN.

Instalación mediante archivo

El archivo generado en la sección anterior se puede enviar por cualquier método a los usuarios. Para instalarlo esto solo tendrán que usa el comando install.packages indicando que este se instale desde archivo en lugar de un repositorio. Por ejemplo, si tenemos nuestro paquete en la carpeta local se puede usar

install.packages(“./rlane_0.1.0.tar.gz”, repos = NULL, type = “source”)

Algo que opcionalmente también se puede hacer desde el asistente de RStudio.

Repositorio Git

El paquete lo podemos subir a un repositorio Git, por lo que solamente tenemos que darle la ruta a nuestros usuarios para que usen el comando install_git() del paquete devtools o, en el caso de usar GitHub, install_github(). Estos comandos se encargará descargar y generar el paquete automáticamente antes de su instalación.

Repositorio privado

Esto se ha explicado en otra entrada, en el caso de trabajar en un departamento que comparte código este se puede publicar en un repositorio como el CRAN en el que se podría publicar este y otros paquetes.

Publicar en el CRAN

Si nuestro paquete cumple las normas de publicación del CRAN y consideramos que es de interés este se puede enviar para su verificación y publicación. Para lo que solamente se tienen pueden seguir los pasos indicados en el siguiente formulario https://cran.r-project.org/submit.html.

En este caso es importante que a la hora de validar el paquete no exista ningún error. Además, debemos comprobar que no existe o, ha existido, otro paquete publicado con el mismo nombre.

Conclusiones

Con esta entrega, donde hemos visto como validar y distribuir nuestros paquetes, finaliza la serie sobre la creación de paquetes en R. Al igual que hemos visto en otras ocasiones, como en la creación de paquetes Python, saber cómo empaquetar y distribuir el código no facilita la reutilización de este. Además de facilitar el uso a otros usuarios.

El código de este proyecto se puede encontrar en un repositorio dentro de la cuenta de GitHub de Analytics Lane.

Imagen de Peter H en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios

En ciencia de datos y estadística, los promedios y porcentajes son herramientas fundamentales para resumir…

22 horas ago

Copias de seguridad automáticas en SQL Server con rotación de archivos

Las bases de datos son el corazón de casi cualquier sistema de información moderno. Ya…

3 días ago

Curiosidad: La Ley de Twyman y la trampa de los datos “interesantes”

En ciencia de datos, pocas cosas llaman más la atención de los científicos de datos…

1 semana ago

Cómo calcular el tamaño de la muestra para encuestas

Calcular adecuadamente el tamaño de la muestra es una parte esencial en el diseño de…

1 semana ago

Curiosidad: El origen del análisis exploratorio de datos y el papel de John Tukey

Hoy en día, cuando pensamos en ciencia de datos, lo primero que nos viene a…

2 semanas ago

Cómo extender el tamaño de un disco en Rocky Linux 9 usando growpart y LVM

Ampliar el espacio de almacenamiento en un sistema Linux es una tarea habitual y crítica…

2 semanas ago

This website uses cookies.