J'utilise R sous Windows, pas en tant qu'administrateur. Lorsque j'installe un package, 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 package, je dois spécifier un emplacement de bibliothèque:
install.packages("zoo", lib="C:/software/Rpackages")
Pour charger un package, je dois également 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
quelque chose au chemin de la bibliothèque et donc ne pas avoir à le taper à chaque fois.
En cherchant en ligne, j'ai trouvé qu'une façon de le faire était d'éditer le Rprofile.site
fichier et d'ajouter la ligne
.libPaths("C:/software/Rpackages")
Cependant, après avoir fait cela et démarré RStudio, voici la sortie que j'obtiens
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
La .libPaths
commande que j'ai ajoutée au Rprofile.site
ne semble pas avoir eu d'effet! pourquoi est-ce le cas? Ou plus important encore, comment puis-je résoudre le problème afin de pouvoir installer et charger des packages sans taper à l'emplacement de la bibliothèque?
Remarque: si je démarre RStudio, la .libPaths()
commande semble fonctionner comme elle est censée
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
N'est-ce pas étrange?
la source
install.packages("zoo")
ne fonctionne pas? Message d'erreur, etc.?install.packages("zoo")
--- mais ce n'est pas ma vraie question qui est de savoir pourquoi.libPaths()
dansRprofile.site
ne fonctionne pas.Réponses:
J'essaie généralement de conserver tous mes packages dans une bibliothèque, mais si vous souhaitez ajouter une bibliothèque, pourquoi ne pas ajouter la nouvelle bibliothèque (qui doit déjà exister dans votre système de fichiers) au chemin de bibliothèque existant?
Ou (et cela fera de la bibliothèque utilisateur la première place pour mettre de nouveaux packages):
Ensuite, je reçois (au moins lorsque j'ai écrit cela à l'origine):
La
.libPaths
fonction est un peu différente de la plupart des autres fonctions non graphiques. Cela fonctionne par effet secondaire. Les fonctionsSys.getenv
etSys.setenv
qui rapportent et modifient les variables d'environnement R ont été séparées mais.libPaths
peuvent soit signaler soit modifier leur cible.Les informations sur le processus de démarrage de R peuvent être lues sur la
?Startup
page d'aide et il existe du matériel RStudio sur: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudioDans votre cas, il semble que RStudio ne respecte pas les paramètres Rprofile.site ou peut-être les remplace en lisant un paramètre .Rprofile à partir de l'une des valeurs 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 R hébergé RStudio (ou tout autre IDE ou réseau installé) pourrait présenter un comportement différent.Depuis
Sys.getenv()
retourne l'environnement système actuel pour le processus R, vous pouvez voir la bibliothèque et d'autres chemins avec:Les deux qui comptent pour le stockage et l'accès aux packages sont (désormais différents sur une boîte Linux):
la source
c()
vecteur pour m'assurer que les nouvelles bibliothèques vont dans le dossier personnalisé.libPaths
fonction-a le même effet par défaut. Il existe également une différence entre les systèmes d'exploitation dans la façon dont les barres obliques de fin sont traitées. (Pas OK sous Windows). D'autres options existent. Voir?.libPaths
file.exists
et continuer uniquement si le chemin d'accès n'est pas manquant.La bonne solution consiste à définir la variable d'environnement
R_LIBS_USER
sur la valeur du chemin du fichier dans le dossier de bibliothèque souhaité, au lieu d'obtenir que RStudio reconnaisse un fichier Rprofile.site.Pour définir la variable d'environnement
R_LIBS_USER
dans Windows, accédez au Panneau de configuration (Propriétés système -> Propriétés système avancées -> Variables d'environnement -> Variables utilisateur) à la valeur souhaitée (le chemin d'accès à votre dossier de bibliothèque), par exempleLa définition de R_LIBS_USER garantira que la bibliothèque apparaît en premier dans .libPaths (), indépendamment du démarrage direct de RStudio ou en cliquant avec le bouton droit sur un fichier et en cliquant 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 héberge votre Rprofile sera suffisant. La solution Rprofile ne fonctionne pas lorsque vous cliquez sur un fichier pour démarrer RStudio car cela éloigne le répertoire de travail du répertoire de travail par défaut.
la source
.bash_profile
et / ou.bashrc
). Voir ici: unix.stackexchange.com/questions/117467/… Pour les configurer pour la session en cours, tapez uniquement dans la consoleexport R_LIBS_USER='directory_of_your_choice'
J'ai réussi à résoudre le problème en plaçant le code dans le
.Rprofile
fichier 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
Ensuite, j'ai utilisé un éditeur de texte pour écrire un
.Rprofile
fichier simple avec la ligne suivanteEnfin, lorsque je démarre
R
et que j'exécute,.libPaths()
j'obtiens la sortie souhaitée:la source
Sys.getenv("HOME")
dans la console r. Je ne sais pas si vous obtenez la sortie souhaitée. Je pense que le résultat souhaité est ce que 42 a montré dans sa réponse stackoverflow.com/a/15170774/754550 . Il utilise .libPaths d'une manière légèrement différente./superuser/749283/change-rstudio-library-path-at-home-directory
Modifier ~ / .Renviron
la source
J'ai trouvé ce que je pense être une solution ici (merci Carl Schwarz à SFU) pour ajouter une bibliothèque personnelle qui est en permanence (vous n'avez pas à la définir à chaque session) reconnue si vous utilisez R ou Rstudio, et Rstudio la traite comme le par défaut sur ma machine Mac. Je ne l'avais pas vu explicitement présenté sur SO, j'ai donc résumé les étapes fournies, pour Windows puis pour Mac.
Pour un système d'exploitation Windows 7:
Créez un répertoire sur le lecteur où vous souhaitez avoir votre bibliothèque personnelle, par exemple C: \ User \ Rlibs (ou un autre sur lequel vous avez des autorisations)
Recherchez / accédez à «Modifier la variable d'environnement pour votre compte» dans la barre de recherche Windows pour modifier les paramètres du panneau de configuration
Cliquez sur "Nouveau ..." au milieu de la fenêtre "Variables environnementales"
Dans la fenêtre "Nouvelle variable utilisateur", saisissez R_LIBS pour le "Nom de la variable" et le chemin d'accès au répertoire de bibliothèque personnel que vous avez créé, par exemple C: \ User \ Rlibs
Cliquez sur OK et vous devriez voir la paire variable / valeur dans la fenêtre Variables utilisateur
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:
Dans votre répertoire "Accueil" ou "nom d'utilisateur", créez un dossier appelé Rlibs
Lancez l'application Terminal
Type:
echo "R_LIBS=~/Rlibs"> .Renvrion
assurez-vous que la casse correspond.Tapez
ls -a
pour voir la liste complète des fichiers dans le répertoire, qui devrait maintenant inclure .RenvrionVérifiez que le fichier .Renviron a été correctement défini:
more .Renviron
Lancez R / Rstudio et tapez
.libPaths()
et vous devriez voir le nouveau chemin vers votre bibliothèque personnelle.la source
Si vous n'avez pas de droits d'administrateur, il peut également être utile d'ouvrir le
Rprofile.site
fichier situé dans \ R-3.1.0 \ etc et d'ajouter:Cela évalue la
.libPath()
commande directement au démarragela source
J'ai vraiment eu du mal à comprendre cela. gorkypl a donné la bonne solution ci-dessus lors de la dernière réinstallation de mon OS & Rstudio mais cette fois-ci, la définition de ma variable d'environnement n'a pas été résolue.
Désinstallé R et Rstudio, créant les répertoires C: \ R et C: \ Rstudio, puis réinstallé 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 machine pour que la variable utilisateur soit chargée. Ouvrez Rstudio, les erreurs devraient avoir disparu.
Vous pouvez également utiliser
Sys.setenv()
pour modifier R_LIBS_USER vers le chemin de votre bibliothèque alternative qui est plus facile et n'a pas besoin de redémarrer votre ordinateur.Pour voir ce que R_LIBS_USER est défini sur:
?Sys.getenv()
La lecture
help(Startup)
est utile.la source
Si votre bibliothèque de packages par défaut a été modifiée après l'installation d'une nouvelle version de R ou par tout autre moyen, vous pouvez ajouter les deux bibliothèques pour utiliser tous les packages à l'aide des commandes ci-dessous. Obtenez le chemin de bibliothèque existant:
.libPaths()
Maintenant, définissez le chemin existant et l'ancien:
.libPaths(c(.libPaths(), "~/yourOldPath"))
J'espère que ça aide.
la source
il suffit de changer le dossier par défaut de vos bibliothèques R dans un répertoire sans droits d'administrateur, par exemple
la source
J'ai lu le readme. En cela, ils ont mentionné utiliser .libPaths () en ligne de commande pour vérifier les chemins d'accès. J'avais 2 chemins de bibliothèque plus tôt. Lorsque j'ai utilisé la commande .libpath ("C: / Program Files / R / R-3.2.4revised / library") où je voulais, cela a changé le chemin de la bibliothèque. Lorsque j'ai tapé à nouveau .libPaths () sur la ligne de commande, cela m'a montré le chemin correct. J'espère que cela t'aides
la source
Sur Ubuntu, la méthode recommandée pour modifier le chemin d'accès à la bibliothèque par défaut pour un utilisateur est de définir la
R_LIBS_USER
variable dans le~/.Renviron
fichier.la source
copier le lien ci-dessus avec une double virgule inversée
Votre chemin par défaut changera pour l'installation des paquets
la source
Si vous souhaitez modifier définitivement le chemin de votre bibliothèque (sans appeler .libPath () à chaque fois que vous entrez dans R, cela fonctionne pour moi:
créez .Rprofile sous votre répertoire personnel. (~ / .Profil)
tapez le
.libPaths(c( .libPaths(), "your new path" ))
fichier .Rprofile, enregistrez.ouvrez R (n'importe quel répertoire) et vérifiez, tapez simplement
.libPaths()
, vous pouvez trouver que votre chemin libaray est mis à jour!la source
J'examinais cela parce que R avait des problèmes d'installation dans l'emplacement par défaut et plaçait simplement les packages dans le dossier temporaire. Il s'est avéré que c'était la dernière mise à jour de Mcaffee Endpoint Security qui a apparemment des problèmes avec R. Vous pouvez désactiver la protection contre les menaces pendant que vous installez les packages et cela fonctionnera correctement.
la source