Diferencias entre library() y require() en R

Publicado el 03 marzo 2021 por Daniel Rodríguez @analyticslane

En R existen dos funciones con las que se puede cargar los paquetes que tenemos instalados en nuestras sesiones: library() y require(). Aunque ambas funciones parece que hacen lo mismo: adjuntan los espacios de nombres de los nuevos paquetes sin recargar los ya cargados. Existen algunas diferencias entre library() y require() que son importante conocer, para utilizar así la más adecuada en cada momento.

La función library() carga el paquete que se le indique como parámetro si este se encuentra disponible en la instalación, en caso contrario por defecto producirá un error. Por lo que si se emplea en un script para importar los paquetes la ejecución de este se interrumpirá al no poderlo cargar.

En el caso de que no se le indique ningún parámetro a la función library() está devolverá la lista de paquetes instalados en las librerías. Por lo que se puede utilizar para conocer los que tenemos disponibles.

En cuanto a require() este intenta cargar el paquete y devuelve un valor lógico que indica si ha tenido éxito o no. TRUE si el paquete se ha cargado y FALSE en el caso de que no. A diferencia de library(), en el caso de que no se encuentre disponible el paquete solamente se producirá un mensaje de advertencia, continuando la ejecución del código.

¿Cuándo utilizar library() y require() en R?

En aspectos generales es mejor utilizar library(), ya que si el paquete no esta disponible nos dará un error, indicándonos el paquete que se tiene que instalar para funcionar. Evitando así errores de funciones no encontradas que son más difíciles de solucionar.

Por su lado require() es adecuado para incluirlo en funciones, ya que devuelve un valor lógico con el que manejar el problema y evita que interrumpa la carga de las funciones porque un paquete no esté disponible.

Conclusiones

En este ocasión hemos visto las diferencias que existe entre las funciones library() y require() en R, con lo que ya sabemos cuál utilizar en cada situación.

Imagen de Aernout Bouwman en Pixabay