Reproducibilidad en scripts de R con renv
Cuando trabajamos con R en equipo, uno de los problemas mas comunes es que un script funciona en un computador y falla en otro por diferencias en los paquetes y sus versiones.
Con renv podemos crear un entorno de proyecto reproducible que guarda exactamente qué paquetes usamos y en que versión. Así, cualquier persona del equipo puede reconstruir el mismo entorno y ejecutar el análisis en condiciones equivalentes.
Idea clave: reproducibilidad no es solo guardar el script, también es guardar el entorno donde ese script corre.
Flujo basico con renv
1) Inicializar renv en el proyecto
En la raiz del proyecto:
pacman::p_load("renv")
renv::init()Esto crea una carpeta renv/ y un archivo renv.lock con el estado del entorno.
2) Instalar y usar paquetes normalmente
Sigue trabajando como siempre:
install.packages("dplyr")
library(dplyr)Cada vez que agregues o actualices paquetes, registra los cambios con:
renv::snapshot()3) Compartir el proyecto
Al subir el repositorio, asegúrense de incluir al menos:
renv.lock.Rprofile- carpeta
renv/(segun configuración del proyecto)
Con eso, otra persona puede restaurar el entorno con:
renv::restore()Resumen del flujo recomendado en scripts
Inicializar
renval crear el proyecto:pacman::p_load("renv") renv::init()Instalar / cargar librerías normalmente:
pacman::p_load("dplyr", "ggplot2") # ejemploAl final del script, guardar el entorno actualizado con:
renv::snapshot()Comentar las línea de código de inicialización del renv para evitar que se ejecute cada vez que se corra el script, y en su lugar, agregar un comentario indicando que se debe ejecutar
renv::restore()la primera vez que se corra el script en una nueva sesión o computadora:
# renv::init() # Ejecutar solo la
primera vez para inicializar el
entorno, luego dejar
comentado con #
renv::restore() # Ejecutar en sesiones
siguientes para restaurar el entorno