La différence entre require() et library() dans R



Les fonctions require() et library() peuvent toutes deux être utilisées pour charger des packages dans R, mais elles présentent une différence subtile :

  • require() affichera un avertissement si un package n’est pas installé, puis continuera à exécuter le code.
  • library() générera une erreur et arrêtera l’exécution du code.

En raison de cette différence, require() n’est généralement utilisé que si vous chargez des packages dans une fonction afin que la fonction continue de s’exécuter même si un package n’existe pas.

En pratique, la plupart des programmeurs recommandent d’utiliser library() car vous souhaiterez recevoir un message d’erreur vous informant qu’un package n’est pas installé.

C’est quelque chose dont vous devez être conscient le plus tôt possible lors de l’écriture de code.

L’exemple suivant illustre la différence entre les fonctions require() et library() dans la pratique.

Exemple : la différence entre require() et library() dans R

Supposons que nous souhaitions charger l’ensemble de données BostonHousing à partir du package mlbench , mais supposons que le package mlbench n’est pas déjà installé.

Le code suivant montre comment utiliser la fonction library() pour tenter de charger ce package et effectuer une analyse de données sur l’ensemble de données BostonHousing :

#attempt to load mlbench library
library(mlbench)

Error in library(mlbench) : there is no package called ‘mlbench’

#load Boston Housing dataset
data(BostonHousing)

#view summary of Boston Housing dataset
summary(BostonHousing)

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

Comme le package mlbench n’est pas déjà installé, nous recevons une erreur lorsque nous utilisons la fonction library() et le reste du code n’est même pas exécuté.

Ceci est utile car cela nous fait immédiatement savoir que ce package n’est pas installé et que nous devons l’installer avant de continuer.

Cependant, supposons que nous utilisions à la place require() pour charger le package mlbench :

#attempt to load mlbench library
require(mlbench)

Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
  there is no package called ‘mlbench’

#load Boston Housing dataset
data(BostonHousing)

Warning message:
In data(BostonHousing) : data set ‘BostonHousing’ not found

#view summary of Boston Housing dataset
summary(BostonHousing)

Error in summary(BostonHousing) : object 'BostonHousing' not found

#view total number of rows in Boston Housing dataset
nrow(BostonHousing)

Dans cet exemple, nous ne recevons pas de message d’erreur tant que nous n’essayons pas d’utiliser la fonction summary() pour résumer l’ensemble de données BostonHousing .

Au lieu de cela, nous recevons un avertissement après avoir utilisé la fonction require() et le reste du code continue de s’exécuter jusqu’à ce que nous rencontrions une erreur.

Cet exemple illustre la différence entre library() et require() dans R : La fonction library() produit une erreur immédiatement et n’exécute pas le reste du code puisque mlbench n’est pas chargé.

C’est pourquoi, dans la plupart des scénarios, vous souhaiterez utiliser la fonction library() lors du chargement des packages.

Bonus : vérifiez si un package particulier est installé

Nous pouvons utiliser la fonction system.file() pour vérifier si un package particulier est installé dans notre environnement R actuel.

Par exemple, nous pouvons utiliser la syntaxe suivante pour vérifier si le package ggplot2 est installé dans l’environnement R actuel :

#check if ggplot2 is installed
system.file(package='ggplot2')

[1] "C:/Users/bob/Documents/R/win-library/4.0/ggplot2"

Puisque ggplot2 est installé, la fonction renvoie simplement le chemin du fichier où le package est installé.

Supposons maintenant que nous vérifiions si le package mlbench est installé :

#check if mlbench is installed
system.file(package='mlbench')

[1] ""

La fonction renvoie une chaîne vide, qui nous indique que le package mlbench n’est pas installé dans notre environnement actuel.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment charger plusieurs packages dans R
Comment effacer l’environnement dans R
Comment effacer tous les tracés dans RStudio

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *