Savoir quels packages sont utilisés dans un programme

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Lucas Tornatore
Messages : 2
Enregistré le : 04 Sep 2015, 06:14

Savoir quels packages sont utilisés dans un programme

Messagepar Lucas Tornatore » 04 Sep 2015, 09:43

Bonjour,

J'ai développé pour mon travail un programme très simple sur la version R.3.0.2. Ce programme nécessite d'être portable, il embarque donc la version de R dans un dossier. Je souhaiterais alléger la taille du dossier.

Existe t-il une fonction permettant de connaitre l'ensemble des packages utilisés dans le script ? Afin de pouvoir supprimer les autres de la version portable.

Je suis vraiment débutant en R, désolé si ce n'est pas très clair

Bien cordialement,
Lucas

Navarre Julien
Messages : 367
Enregistré le : 20 Avr 2012, 08:27

Re: Savoir quels packages sont utilisés dans un programme

Messagepar Navarre Julien » 04 Sep 2015, 10:21

Une fois que tu as sourcé ton script, tu peux connaitre les packages chargés avec la commande :

Code : Tout sélectionner

print(.packages())


Mais ne te sers pas de cette liste pour faire un tri, car tu ne vois pas les imports, des packages qui ne sont pas forcement chargés et sur lesquels dépendent certaines fonctions d'autres packages.

Si tu veux savoir tous les packages dont tu as besoin, source d'abord ton script. Avec installed.packages() tu peux voir tous les packages installés dans une certaine librairie. Parmi les packages installés on garde ceux qui ont étés chargés par ton script et ceux qui viennent avec la version de base de R (priority base ou recommended), on affiche ensuite les imports de ces packages :

Code : Tout sélectionner

[code]p <- installed.packages()[row.names(installed.packages()) %in% .packages() | !is.na(installed.packages()[ ,"Priority"]), "Imports"]

data.frame(Package = names(p), Imports = p)[/code]


Et tu as un data frame avec tous les packages necessaires.

Mais je pense que la manipulation la plus simple si tu veux supprimer tous les packages inutiles sans risques c'est de ré installer R et de n'installer que les packages dont tu as besoin

Ouvre une nouvelle session de R, source ton script, exécute :

Code : Tout sélectionner

paste0("install.packages(c(\"",
       paste(names(is.na(installed.packages()[.packages(), "Priority"]))[is.na(installed.packages()[.packages(), "Priority"])],
             collapse = "\", \""),
       "\"))")


Copie la commande en sortie

désinstalle et ré-installe R, ouvre une nouvelle session et exécute la commande que tu as copié, elle va installer tous les packages qui étaient chargés dans ton ancienne session, exceptés ceux base & recommended (déjà fournit par l'installation de R), ainsi que leurs imports, links et dépendances.

Lucas Tornatore
Messages : 2
Enregistré le : 04 Sep 2015, 06:14

Re: Savoir quels packages sont utilisés dans un programme

Messagepar Lucas Tornatore » 04 Sep 2015, 10:51

Super, merci pour la réactivité, merci beaucoup

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Re: Savoir quels packages sont utilisés dans un programme

Messagepar Eric Casellas » 04 Sep 2015, 10:53

Bonjour,

Au passage je signale qu'il y a aussi maintenant des paquets pour aider à la gestion des versions de paquets R :

https://mran.revolutionanalytics.com/documents/rro/reproducibility/

http://www.r-bloggers.com/packrat-on-cran/
Eric


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité