Reproducibilidad en scripts de R con renv

info
Autor/a

Equipo Docente

Posted

lunes abril 27, 2026 at 12:00 AM

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.

Nota

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

  1. Inicializar renv al crear el proyecto:

     pacman::p_load("renv")
     renv::init()
  2. Instalar / cargar librerías normalmente:

     pacman::p_load("dplyr", "ggplot2") # ejemplo
  3. Al final del script, guardar el entorno actualizado con:

     renv::snapshot()
  4. 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