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?

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.


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.


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.


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)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.