Comment charger des paquets en R automatiquement?

pourriez-vous me suggérer un moyen de charger les paquets dans R automatiquement? Je veux dire, je veux commencer une session en R sans avoir besoin d'utiliser library('package name') plusieurs fois. Supposons que j'ai téléchargé tous les paquets que je veux utiliser la prochaine fois que je commence R.

48
demandé sur Jaap 2012-04-24 19:10:05

4 réponses

Mettre library(foo) dans votre .Rprofile fichier ou d'un ensemble R_DEFAULT_PACKAGES : voir ?Rprofile ...

en particulier (parce que ?Rprofile est long et potentiellement intimidant):

si vous voulez un ensemble de paquets différent de ceux par défaut lorsque vous démarrer, insérer un appel à "options" dans le".Rprofile " ou "Rprofile.site fichier. Par exemple, " options (defaultPackages = caractère ()) ' n'ajoutera aucun paquet supplémentaire sur de démarrage (uniquement le paquet’ base') (ou défini ‘R_DEFAULT_PACKAGES = NULL’ comme environnement variable avant l'exécution R). En utilisant ' options (defaultPackages ="") ' ou ‘R_DEFAULT_PACKAGES= ""’ renforce le R system default.

puisque vous voulez probablement do que tous les paquets par défaut soient chargés, puis des paquets supplémentaires en plus (plutôt que, disons, de ne pas charger certains paquets par défaut), vous pouvez soit mettre

library("mypackage1")
library("mypackage2")
[etc.]

ou en utilisant options(defaultPackages=...) :

options(defaultPackages=c(getOption("defaultPackages"),
       "mypackage1","mypackage2", ... [etc.]))

dans votre .Rprofile à ajoutez vos paquets désirés aux valeurs par défaut standard.

modifier (copié à partir du commentaire) re se présente au travail dans Rstudio : http://rstudio.org/docs/using/workspaces suggère que Rstudio exécute .Rprofile et puis "Exécute les autres actions décrites dans R Startup [ http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html ]" (qui est la même que ?Rprofile ). Il est ambigu qu'il regarde Rprofile.site ou non.

edit #2 : selon le commentaire ci-dessous, il ne fonctionne avec une version récente de Rstudio.

66
répondu Ben Bolker 2012-04-24 22:46:51

il y a un fichier appelé .Rprofile qui n'est rien d'autre qu'un script qui est exécuté chaque fois que vous démarrez une nouvelle session de R.

vous devez y ajouter library(package) . Si vous utilisez Unix, C'est probablement dans votre dossier personnel en tant que Fichier caché.

15
répondu João Daniel 2012-04-24 15:15:15

la page Quick-R sur la personnalisation du démarrage de R contient essentiellement la même information que dans les réponses de Ben et Joao, mais elle est peut-être un peu plus claire. Créez une copie du fichier Rprofile.site avec les changements désirés dans votre dossier personnel (Documents sur Windows) et appelez-le .Rprofile

EDIT: j'ai remarqué que R 3.0.0 n'a pas l'air de dossier Documents plus longtemps, mais utilise le répertoire home de l'utilisateur (nom d'utilisateur) sous Windows 7. Cela pourrait être un problème d'installation, cependant (i.e. que j'ai installé R "à tort" auparavant). Toutefois, la page Quick-R liée à cette réponse indique la bonne façon de procéder. Si quelqu'un d'autre rencontre ce problème, la solution est de copier .Rprofile dans le répertoire de l'utilisateur.

8
répondu Mikko 2013-04-15 14:20:09

la réponse rapide est que vous devez mettre vos paquets R dans le fichier .Rprofile , comme tout le monde l'a suggéré.

notez cependant que R lira ce fichier, et chargera alors les paquets de base R . Voir ?Démarrage :

notez que lorsque le site et les fichiers de profil d'utilisateur sont le paquet de base est chargé,

cela peut causer problèmes si le paquet que vous voulez charger améliore/réécrit certaines fonctions de base. Voir par exemple avec tidyverse::filter: https://github.com/tidyverse/dplyr/issues/1611

je peux voir deux solutions jusqu'à présent:

  1. utilisez .First.sys() à la première ligne de votre fichier .Rprofile : c'est la commande qui est habituellement exécutée après la lecture du .Rprofile, qui charge les colis dans getOption("defaultPackages") .

  2. mettre à jour l'option defaultPackages : n'utilisez pas library() dans votre .Rprofile, mais quelque chose comme.

    old <- getOption("defaultPackages")
    options(defaultPackages = c(old, "tidyverse"))
    
0
répondu Matifou 2018-02-22 23:31:27