Wo speichert R Pakete?

207

Die install.packages()Funktion in R ist das Dienstprogramm zum automatischen Entpacken, mit dem Pakete in R abgerufen und installiert werden.

  1. Wie finde ich heraus, welches Verzeichnis R zum Speichern von Paketen ausgewählt hat?

  2. Wie kann ich das Verzeichnis ändern, in dem R Pakete speichert und darauf zugreift?

Milchhändler
quelle

Antworten:

248

Der Befehl install.packages durchsucht die Variable .libPaths. Folgendes ist meine Standardeinstellung unter OSX:

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

Ich installiere dort standardmäßig keine Pakete, ich bevorzuge es, sie in meinem Home-Verzeichnis zu installieren. In meinem .Rprofil habe ich folgende Zeile:

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

Dadurch wird das Verzeichnis "/ Users / tex / lib / R" vor der Variablen .libPaths hinzugefügt.

James Thompson
quelle
Das möchte ich tun, aber wie greife ich auf und .Rprofile zu? Die Eingabeaufforderung erkennt es weder als Objekt noch als Funktion
Milktrader
7
Es ist eine Datei . Lesen Sie erneut das Handbuch und / oder die Hilfe (Start).
Dirk Eddelbuettel
44

Dies ist im Handbuch 'R Installation and Administration' dokumentiert, das mit Ihrer Installation geliefert wurde.

Auf meiner Linux-Box:

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

Dies bedeutet, dass der Standardpfad der erste davon ist. Sie können dies über ein Argument sowohl für install.packages()(innerhalb von R) als auch R CMD INSTALL(außerhalb von R) überschreiben .

Sie können auch überschreiben, indem Sie die Variable R_LIBS_USER festlegen.

Dirk Eddelbuettel
quelle
Ich habe einen Windows Vista-Computer, aber unter der Annahme, dass das gleiche Verfahren vorhanden ist, geben Sie das Verzeichnis in der Argumentliste install.packages () zusammen mit dem Paketnamen an?
Milktrader
3
Haben Sie 'help (install.packages)' schon entdeckt? Siehe auch 'Hilfe (Start)' gemäß meinem letzten Kommentar. Und lesen Sie diese Handbücher. Schließlich neige ich bei * doze dazu, R_LIBS = "C: / opt / R / library" in einer Datei .Renviron zu setzen. Ich weiß, dass Sie auch danach fragen werden - lesen Sie also die Hilfe (Startup). Okay? ;-)
Dirk Eddelbuettel
1
Ich habe ein Dutzend R-Handbücher auf meinem Kindle (einschließlich der über 3.000 Seiten) und war mir der Startup-Hilfedatei nicht bewusst. Ich habe die Handbücher gelesen und bin in eine Sackgasse geraten. Ich denke, es war die ganze Zeit eine einfache Antwort. Verliere ich Punkte für RTFM-Fragen? <- Ich habe nicht viele zu verlieren. Nochmals vielen Dank Dirk. Wir sehen uns nächste Woche bei R / Finance. Verbessere deine R-Fähigkeiten so gut ich kann, damit ich während der Präsentationen nicht abgestaubt werde.
Milktrader
1
Die 3000+ Seite ist eine Zusammenstellung aller Hilfeseiten - am wenigsten hilfreich. Die oben genannte "Installation und Verwaltung" sollte für das, was Sie hier suchen, sehr nützlich sein.
Dirk Eddelbuettel
Gibt es eine gleichwertige Möglichkeit, diese über die Bash-Befehlszeile zu finden? dh eine Umgebungsvariable , die angibt , wo die R - Bibliotheken installiert sind , wenn $R_LIBSund $R_LIBS_USERnicht festgelegt ist ? (Ich möchte in der Lage sein, ein R-Skript im inst/Verzeichnis eines installierten Pakets auszuführen ) auf jedem Unix-System.
David LeBauer
12

Vielen Dank für die Anweisung der beiden oben genannten Antwortenden. James Thompsons Vorschlag funktionierte am besten für Windows-Benutzer.

  1. Gehen Sie zu dem Ort, an dem Ihr R-Programm installiert ist. Dies wird R_Homein der Literatur als bezeichnet. Wenn Sie es gefunden haben, gehen Sie zum Unterverzeichnis / etc.

    C:\R\R-2.10.1\etc
  2. Wählen Sie die Datei in diesem Ordner mit dem Namen Rprofile.site aus. Ich öffne es mit VIM. Sie werden feststellen, dass dies eine Bare-Bones-Datei mit weniger als 20 Codezeilen ist. Ich habe Folgendes in den Code eingefügt:

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

    (Der Kommentar wurde hinzugefügt, um zu verfolgen, was ich mit der Datei gemacht habe.)

  3. In R .libPaths()ergibt die Eingabe der Funktion das erste Ziel beiC:/R/Library

HINWEIS: Es gibt wahrscheinlich mehr als einen Weg, um dies zu erreichen, aber andere Methoden, die ich ausprobiert habe, haben aus irgendeinem Grund nicht funktioniert.

Milchhändler
quelle
1
Ich kopiere die eingefügte Zeile .libPaths=("C:/R/library")in meine Rprofile.site- Datei. Ich starte R 2.13.1 64 Bit und erhalte folgende Fehlermeldung: Fehler: Der Wert der gesperrten Bindung für '.libPaths' kann nicht geändert werden. Ich verwende Windows 7.
Fred
1
Siehe Daves Antwort : Es sollte sein .libPaths("...")(ein Anruf und keine Aufgabe).
CodeFox
0

Sie wollen nicht das '='

Verwenden .libPaths("C:/R/library")Sie in Ihrer Rprofile.site-Datei

Und stellen Sie sicher, dass Sie das richtige "Symbol" haben (Umschalt-2)

Dave
quelle