web-dev-qa-db-fra.com

Où R stocke-t-il les paquets?

La fonction install.packages() dans R est l’utilitaire de décompression automatique qui récupère et installe les packages dans R.

  1. Comment savoir quel répertoire R a choisi de stocker les paquets?

  2. Comment puis-je changer le répertoire dans lequel R stocke et accède aux packages?

169
Milktrader

La commande install.packages examine la variable .libPaths. Voici ce que mien utilise par défaut sur OSX:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Resources/library"

Je n'installe pas les paquets par défaut, je préfère les installer dans mon répertoire personnel. Dans mon .Rprofile, j'ai cette ligne:

.libPaths( "/Users/tex/lib/R" )

Cela ajoute le répertoire "/ Users/tex/lib/R" au début de la variable .libPaths. 

201
James Thompson

Ceci est documenté dans le manuel 'Installation et administration R' fourni avec votre installation.

Sur ma machine Linux:

R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"           
R> 

ce qui signifie que le chemin par défaut est le premier d'entre eux. Vous pouvez remplacer cela via un argument à la fois install.packages() (de l'intérieur de R) ou R CMD INSTALL (de l'extérieur de R).

Vous pouvez également remplacer en définissant la variable R_LIBS_USER. 

35
Dirk Eddelbuettel

Merci pour la direction des deux répondants ci-dessus. La suggestion de James Thompson fonctionnait mieux pour les utilisateurs de Windows.

  1. Allez à l'endroit où votre programme R est installé. Ceci est appelé R_Home dans la littérature. Une fois que vous l'avez trouvé, accédez au sous-répertoire/etc.

    C:\R\R-2.10.1\etc
    
  2. Sélectionnez le fichier dans ce dossier nommé Rprofile.site. Je l'ouvre avec VIM. Vous constaterez qu'il s'agit d'un fichier contenant moins de 20 lignes de code. J'ai inséré ce qui suit dans le code:

    # my custom library path
    .libPaths("C:/R/library")
    

    (Le commentaire ajouté pour garder une trace de ce que j'ai fait dans le fichier.)

  3. Dans R, taper la fonction .libPaths() donne la première cible à C:/R/Library

REMARQUE: il existe probablement plus d'un moyen d'y parvenir, mais d'autres méthodes que j'ai essayées n'ont pas fonctionné pour une raison quelconque.

8
Milktrader

Vous ne voulez pas le '='

Utilisez .libPaths("C:/R/library") dans votre fichier Rprofile.site

Et assurez-vous d’avoir le "symbole" correct (Maj-2)

0
Dave