Comment installer automatiquement un package R non installé ?

Pourquoi installer automatiquement ses libraries en R ?

Lors de la conception de scripts R, nous faisons souvent appels à des librairies non comprises dans les packages de base.

Problème: votre environnement de travail ne comporte pas forcément les mêmes librairies que celles des autres utilisateurs ou des autres postes de travail sur lesquels vous travaillez.

Plutôt que de cumuler les erreurs au lancement de votre script, voici une commande pour installer automatiquement les librairies / packages manquant dans RStudio.

# Installation des librairies nécessaires packages <- c("monPackage", "monAutrePackage")
newPackages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(newPackages)) install.packages(newPackages)

 

Installation automatique de packages R : comment s'y prendre ?

Décryptons ces quelques lignes ensemble.

Regroupement des packages utilisés dans le script

La première ligne regroupe les librairies qui seront appelées dans votre script. On retrouve celles-ci dans l'objet packages auquel nous allons attribuer le vecteur suivant.

c("monPackage", "monAutrePackage")

 

Vérification des packages installés

Nous allons ensuite utiliser la fonction installed.packages() afin d'identifier les librairies installées sur votre poste. Cette fonction envoie un dataframe dans laquelle nous retrouvons les caractéristiques de toutes les librairies installées.


Liste des librairies R installées
La fonction installed.packages() nous envoie les caractéristiques de toutes les librairies installées.

Concentrons nous sur la colonne Package, nous allons vérifier que notre liste de packages nécessaire ne se trouvent pas dans cette colonne. Nous pouvons donc attribuer la valeur des librairies manquantes (qui ne sont pas visibles dans ce dataframe) à l'objet newPackages grâce à la ligne suivante.

packages[!(packages %in% installed.packages()[,"Package"])]

 

Installation des packages manquants

Il ne reste plus qu'à installer automatiquement les librairies R manquantes. Pour cela nous allons vérifier que l'objet newPackages n'a pas pour longueur 0, ce qui signifierait qu'il n'y a pas de nouveaux packages à installer.

Si l'objet newPackages n'est pas vide, on déclenche donc l'installation des nouveaux packages contenus dans l'objet newPackages.

if(length(newPackages)) install.packages(newPackages)

 

Vos librairies sont désormais installées, vous pouvez désormais lancer l'ensemble de votre script sans subir les erreurs engendrées par l'absence de librairies.

Article précédent
Installer un package R

A propos de l'auteur

David Looses

David Looses est consultant en référencement sénior à l'agence SEO de Lille Aseox. Il est passionné par le langage R et est spécialiste du traitement des données.