2012-04-24 23 views
44

Können Sie mir einen Weg vorschlagen, Pakete automatisch in R zu laden? Ich meine, ich möchte eine Sitzung in R starten, ohne library('package name') mehrmals verwenden zu müssen. Angenommen, ich alle Pakete heruntergeladen Ich möchte werde das nächste Mal verwenden, beginne ich R.Wie werden Pakete automatisch in R geladen?

+6

Normalerweise ist dies keine gute Idee, weil es alle nachfolgenden Code in der Sitzung abhängig von Ihrem Setup macht, während, wenn sie die Bibliothek Anrufe in sich hatte, dann wäre es mehr in sich geschlossen sein. Wenn Sie versuchen, Ihren Code mit anderen zu teilen, werden sie nicht sehr glücklich mit Ihnen sein, da sie Ihre Skripte ohne zusätzliche Anweisungen nicht ausführen können. –

+1

Sie könnten eine 'load_extra_packages()' Funktion in Ihrer '.Rprofile' /' Rprofile.site' Datei definieren, die alle gewünschten Pakete geladen (und deren Namen ausgedruckt hat), dann führen Sie diesen Befehl zu Beginn Ihrer Sitzungen aus - das würde deinen Code transparent machen, wenn nicht sogar komplett eigenständig ... –

Antwort

63

Put library(foo) in Ihrem .Rprofile Datei oder R_DEFAULT_PACKAGES gesetzt: siehe ?Rprofile ...

Insbesondere (weil ?Rprofile lang ist und potentiell einschüchternd):

If you want a different set of packages than the default ones when you start, insert a call to ‘options’ in the ‘.Rprofile’ or ‘Rprofile.site’ file. For example, ‘options(defaultPackages = character())’ will attach no extra packages on startup (only the ‘base’ package) (or set ‘R_DEFAULT_PACKAGES=NULL’ as an environment variable before running R). Using ‘options(defaultPackages = "")’ or ‘R_DEFAULT_PACKAGES=""’ enforces the R system default.

Da Sie wahrscheinlich geladen alle Standardpakete wollen tun, und dann überzähligen zusätzlich (und nicht, sagen wir, nicht einige der Standardpakete laden), können Sie eit sie setzen

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

oder mit options(defaultPackages=...):

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

in Ihrem .Rprofile-append Ihre gewünschten Pakete zu den Standardeinstellungen zurück.

bearbeiten (aus Kommentar kopiert) bezüglich immer dies in Rstudio zu arbeiten: http://rstudio.org/docs/using/workspaces schlägt vor, dass Rstudio .Rprofile ausführt und dann „Führt die anderen Aktionen beschrieben in R Startup [http://stat.ethz.ch/R-manual/R-patched/library/base/html/Startup.html]“ (das ist die gleiche wie ?Rprofile) . Es ist mehrdeutig, ob es Rprofile.site oder nicht aussieht.

bearbeiten # 2: nach Kommentar unten funktioniert es mit einer aktuellen Version von Rstudio.

+2

+1 für 'weil '' Rprofile' lang und potenziell einschüchternd ist '. Es ist das, und auch eine unglaublich kompakte * und * vollständige Dokumentation. Definitiv empfohlenes Lesen. –

+0

Danke @Ben Bolker Ich habe versucht, diese Zeile 'library (foo)' in der 'Rprofile.site'-Datei hinzuzufügen und ich bekomme nicht, was ich will. Was meinst du mit 'foo'? Was ist das? Soll es sich um einen Namen für ein bestimmtes Paket handeln, das ich laden möchte? – Nestorghh

+3

Entschuldigung; 'foo' ist eine altmodische" Platzhalter "-Variable. Zum Beispiel könnten Sie versuchen, Bibliothek ("ggplot2"); Bibliothek ("emdbook"); Bibliothek ("Quantreg"); library ("rms") '(als Beispiele für einige echte Pakete, die Sie vielleicht hinzufügen möchten). –

15

Es gibt eine Datei .Rprofile genannt, die nichts anderes als ein Skript, das jedes Mal ausgeführt wird, eine neue Sitzung von R. starten

Was Sie tun müssen, ist library(package), um es hinzuzufügen. Wenn Sie Unix verwenden, befindet es sich wahrscheinlich in Ihrem privaten Ordner als versteckte Datei.

7

Quick-R page on customizing R startup enthält im Grunde die gleichen Informationen als in Bens und Joaos Antworten, aber es ist vielleicht ein bisschen klarer. Erstellen Sie eine Kopie Rprofile.site Datei mit den gewünschten Änderungen in Ihrem Home-Ordner (Dokumente unter Windows) und nennen es .Rprofile

EDIT: Ich bemerkte, dass R 3.0.0 nicht sieht aus Dokumenten nicht mehr Ordner, sondern nutzt Benutzer-Home Verzeichnis (Benutzername) unter Windows 7. Dies könnte jedoch ein Installationsproblem sein (dh, dass ich zufällig R "falsch" installiert habe). Die Quick-R-Seite, die in dieser Antwort verknüpft ist, zeigt jedoch die richtige Vorgehensweise an. Wenn jemand anderes dieses Problem auftritt, ist die Lösung, .Rprofile in das Home-Verzeichnis des Benutzers zu kopieren.

0

Die schnelle Antwort ist, dass Sie Ihre R-Pakete in die Datei .Rprofile, wie alle vorgeschlagen haben sollten.

Beachten Sie jedoch, dass R diese Datei liest und dann die R-Basispakete lädt.Siehe von ?Startup:

Note that when the site and user profile files are sourced only the base package is loaded,

Diese Probleme verursachen kann, wenn das Paket, das Sie wollen, um zu kommissionieren/überschreiben einige R Basisfunktionen. Siehe zum Beispiel mit tidyverse :: Filter: https://github.com/tidyverse/dplyr/issues/1611

ich bisher zwei Lösungen sehen:

  1. Verwenden .First.sys() in der ersten Zeile Ihrer .Rprofile Datei: Dies ist der Befehl, der in der Regel nach dem Lesen ausgeführt wird das .Rprofile, das die Pakete in getOption("defaultPackages") lädt.

  2. Aktualisieren Sie die Option defaultPackages: nicht library() in Ihrem .Rprofile nicht verwenden, aber so etwas wie.

    old <- getOption("defaultPackages") 
    options(defaultPackages = c(old, "tidyverse"))