web-dev-qa-db-fra.com

Le chemin d'accès de la bibliothèque par défaut R à l'aide de .libPaths dans Rprofile.site ne fonctionne pas

J'exécute R sur Windows, pas en tant qu'administrateur. Lorsque j'installe un paquet, la commande suivante ne fonctionne pas:

> install.packages("Zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

Pour installer un paquet, je dois spécifier un emplacement de bibliothèque:

install.packages("Zoo", lib="C:/software/Rpackages")

Pour charger un paquet, je dois aussi spécifier l'emplacement de la bibliothèque:

library("Zoo", lib.loc="C:/software/Rpackages")

Tout cela est OK, mais je voulais voir si je pouvais ajouter C:/software/Rpackages au chemin de la bibliothèque et ne pas avoir à le taper à chaque fois.

Lors de ma recherche en ligne, j’ai trouvé qu’une façon de le faire est de modifier le fichier Rprofile.site et d’ajouter la ligne

.libPaths("C:/software/Rpackages")

Cependant, après avoir lancé cela et démarré RStudio, voici le résultat obtenu.

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

La commande .libPaths que j'ai ajoutée au Rprofile.site ne semble avoir eu aucun effet! pourquoi est-ce le cas? Ou plus important encore, comment puis-je résoudre le problème afin que je puisse installer et charger des packages sans taper l'emplacement de la bibliothèque?

Remarque: si je lance RStudio, la commande .libPaths() semble fonctionner comme prévu

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"

N'est-ce pas étrange?

158
I Like to Code

J'essaie généralement de garder tous mes paquets dans une bibliothèque, mais si vous voulez ajouter une bibliothèque, pourquoi ne pas ajouter la nouvelle bibliothèque à la bibliothèque existante:

.libPaths( c( .libPaths(), "~/userLibrary") )

Alors je reçois:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/davidwinsemius/userLibrary"  

La fonction .libPaths est un peu différente de la plupart des autres fonctions non graphiques. Cela fonctionne par effet secondaire. Les fonctions Sys.getenv et Sys.setenv qui signalent et modifient les variables d’environnement R ont été séparées, mais .libPaths peut signaler ou modifier sa cible. Les informations sur le processus de démarrage R peuvent être lues sur la page d’aide ?Startup et le matériel RStudio est disponible sur: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio

Dans votre cas, il semble que RStudio ne respecte pas les paramètres Rprofile.site ou les remplace en lisant un paramètre .Rprofile à partir de l’un des paramètres par défaut de RStudio. Il convient également de mentionner que le résultat de cette opération ajoute également le contenu des appels à .Library et .Library.site, ce qui est une autre raison pour laquelle un RStudio (ou tout autre IDE ou réseau installé) hébergé R peut présenter un comportement différent .

126
42-

La solution appropriée consiste à définir la variable d'environnement R_LIBS_USER sur la valeur du chemin du fichier dans le dossier de la bibliothèque de votre choix plutôt que de demander à RStudio de reconnaître un fichier Rprofile.site. 

Pour définir la variable d'environnement R_LIBS_USER sous Windows, accédez au Panneau de configuration (Propriétés système -> Propriétés système avancées -> Variables d'environnement -> Variables utilisateur) sur une valeur souhaitée (le chemin d'accès à votre dossier de bibliothèque), par exemple.

Variable name: R_LIBS_USER 
Variable value: C:/software/Rpackages  

Définir R_LIBS_USER garantira que la bibliothèque apparaît en premier dans .libPaths () indépendamment du démarrage de RStudio directement ou en cliquant avec le bouton droit de la souris sur un fichier et sur "Ouvrir avec" pour démarrer RStudio. 

La solution Rprofile peut fonctionner si RStudio est toujours démarré en cliquant sur le raccourci RStudio. Dans ce cas, définir le répertoire de travail par défaut sur le répertoire qui contient votre Rprofile sera suffisant. La solution Rprofile ne fonctionne pas lorsque vous cliquez sur un fichier pour démarrer RStudio, car le répertoire de travail est supprimé du répertoire de travail par défaut.

173
Paweł Rumian

J'ai réussi à résoudre le problème en plaçant le code dans le fichier .Rprofile dans le répertoire de travail par défaut.

Tout d'abord, j'ai trouvé l'emplacement du répertoire de travail par défaut

> getwd()
[1] "C:/Users/me/Documents"

Ensuite, j'ai utilisé un éditeur de texte pour écrire un simple fichier .Rprofile avec la ligne suivante.

.libPaths("C:/software/Rpackages")

Enfin, lorsque je lance R et exécute .libPaths(), je reçois le résultat souhaité:

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
18
I Like to Code
12
bowen.li

Si vous ne possédez pas de droits d'administrateur, il peut également être utile d'ouvrir le fichier Rprofile.site- situé dans\R-3.1.0\etc et d'ajouter:

.First <- function(){
  .libPaths("your path here")
}

Ceci évalue la commande .libPath() directement au démarrage

8
schlusie

J'ai trouvé ce que je pense être une solution ici (merci Carl Schwarz de la SFU) pour l'ajout d'une bibliothèque personnelle permanente (vous n'avez pas à la définir à chaque session) reconnue si vous utilisez R ou Rstudio et Rstudio le traite comme la valeur par défaut sur ma machine Mac. Je ne l'avais pas vu explicitement sous SO, alors j'ai résumé les étapes fournies, pour Windows puis pour Mac. 

Pour un système d'exploitation Windows 7:

  1. Créez un répertoire sur le lecteur où vous souhaitez que votre bibliothèque personnelle, par exemple. C:\User\Rlibs (ou un autre que vous avez les autorisations)

  2. Recherchez/allez dans "Modifier la variable d'environnement de votre compte" dans la barre de recherche de Windows pour modifier les paramètres du panneau de configuration.

  3. Cliquez sur "Nouveau ..." au milieu de la fenêtre "Variables environnementales".

  4. Dans la fenêtre "Nouvelle variable utilisateur", tapez R_LIBS pour le "Nom de la variable", ainsi que le chemin d'accès au répertoire de la bibliothèque personnelle que vous avez créé, par exemple. C:\User\Rlibs

  5. Cliquez sur OK et vous devriez voir la paire Variable/Valeur dans la fenêtre Variables utilisateur

  6. Cliquez à nouveau sur OK

Maintenant, lorsque vous démarrez R (ou Rstudio) et tapez la commande .libPaths(), vous devriez voir la bibliothèque personnelle que vous avez créée ainsi que la bibliothèque système R.

Pour Mac:

  1. Dans votre répertoire "Home" ou "nom d'utilisateur", créez un dossier nommé Rlibs.

  2. Lancer l'application Terminal

  3. Tapez: echo "R_LIBS=~/Rlibs"> .Renvrion Assurez-vous que la casse correspond.

  4. Tapez ls -a pour voir la liste complète des fichiers du répertoire, qui devrait maintenant inclure .Renvrion

  5. Vérifiez que le fichier .Renviron a été défini correctement: more .Renviron

Lancez R/Rstudio et tapez .libPaths(). Vous devriez voir le nouveau chemin d'accès à votre bibliothèque personnelle. 

7
Whalen

J'ai vraiment eu du mal à comprendre cela. gorkypl a donné la solution correcte ci-dessus lors de la dernière réinstallation de mon système d'exploitation et de mon studio, mais cette fois-ci, la définition de ma variable d'environnement n'a pas été résolue.

Désinstallez R et Rstudio, créez les répertoires C:\R et C:\Rstudio, puis réinstallez les deux.

Définissez la variable utilisateur R_LIBS_USER dans votre répertoire préféré (selon la réponse de gorkypl) et redémarrez votre ordinateur pour que la variable utilisateur soit chargée. Ouvrez Rstudio, les erreurs devraient disparaître.

Vous pouvez également utiliser Sys.setenv() pour modifier R_LIBS_USER sur le chemin de votre bibliothèque alternative, ce qui est plus facile et ne nécessite pas de redémarrer votre ordinateur.

Pour voir ce que R_LIBS_USER est défini sur: ?Sys.getenv()

La lecture de help(Startup) est utile.

4
felixmc

J'ai lu le readme. En cela, ils ont mentionné utiliser .libPaths () en ligne de commande pour vérifier quels chemins sont là. J'ai eu 2 chemins de bibliothèque plus tôt. Lorsque j'ai utilisé la commande .libpath ("C:/Program Files/R/R-3.2.4 révisé/bibliothèque") où je voulais, il a changé le chemin de la bibliothèque. Lorsque j'ai tapé à nouveau .libPaths () sur la ligne de commande, il m'a montré le chemin correct. J'espère que cela t'aides

1
Supriya Deverkonda
getwd()
# [1] "C:/Users/..../software/My R studio"

copier le lien ci-dessus avec une double virgule

.libPaths(new="C:/Users/..../software/My R studio")

Votre chemin par défaut changera pour l'installation de pakages 

0

Si vous voulez changer le chemin de votre bibliothèque de façon permanente (sans appeler .libPath () chaque fois que vous entrez en R, cela fonctionne pour moi:

  1. créez .Rprofile dans votre répertoire personnel. (~/.Rprofile)

  2. tapez .libPaths(c( .libPaths(), "your new path" )) dans le fichier .Profile, enregistrez.

  3. ouvrez R (n’importe quel répertoire) et cochez, tapez simplement .libPaths(), vous pouvez trouver que votre chemin de libaray est mis à jour!

0
Pengyao

il suffit de changer le dossier par défaut de vos bibliothèques R dans un répertoire sans droits d'administrateur, par exemple.

.libPaths("C:/R/libs")
0