Wie installiere ich ein R-Paket von der Quelle?

392

Ein Freund hat mir dieses großartige Tutorial über das Webcraping von NYtimes mit R geschickt . Ich würde es wirklich gerne versuchen. Der erste Schritt besteht jedoch darin, ein Paket namens RJSONIO von der Quelle zu installieren.

Ich kenne R ziemlich gut, aber ich habe keine Ahnung, wie ich ein Paket von der Quelle installieren soll.

Ich verwende Mac OSX.

Thomas
quelle
1
Dies ist sehr eng verwandt: stackoverflow.com/questions/11105131/…
GSee

Antworten:

487

Wenn Sie die Datei lokal haben, verwenden install.packages()und setzen Sie Folgendes repos=NULL:

install.packages(path_to_file, repos = NULL, type="source")

Wo path_to_filewürde der vollständige Pfad und Dateiname darstellen:

  • Unter Windows sieht es ungefähr so ​​aus : "C:\\RJSONIO_0.2-3.tar.gz".
  • Unter UNIX sieht es so aus : "/home/blah/RJSONIO_0.2-3.tar.gz".
Shane
quelle
2
Dies funktioniert auch, wenn dies das file_name_and_pathlokale Quell-Repository eines R-Pakets ist.
Faheem Mitha
1
Beachten Sie, dass die INSTALL_optsOption verwendet werden kann, um Optionen an zu übergeben R CMD INSTALL. Zum Beispiel "--no-multiarch"
Andy Barbour
2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") Ich erhalte diesen Fehler: -ksh: Syntaxfehler: `('unerwartet
iaav
3
Wie @Cerin betonte, müssen Sie sich um die Erweiterung kümmern. Ich hatte einen Fehler "(da 'lib' nicht spezifiziert ist)" von R mit .zip-Archiven. Nach dem Ändern der Erweiterung in .tar funktioniert alles einwandfrei.
Mohamed Hasan
2
Beachten Sie dies, da bei repos = NULLdiesem Ansatz keine Abhängigkeiten installiert werden, z. B. von CRAN. Diese Antwort legt nahe, devtools::install_local(path_to_file)welche für mich einfacher (weniger Argumente) und besser (installiert auch Abhängigkeiten) ist.
Mac
97

Laden Sie das Quellpaket herunter, öffnen Sie Terminal.app, navigieren Sie zu dem Verzeichnis, in dem sich die Datei derzeit befindet, und führen Sie dann Folgendes aus:

R CMD INSTALL RJSONIO_0.2-3.tar.gz

Beachten Sie, dass dies nur erfolgreich ist, wenn entweder: a) das Paket nicht kompiliert werden muss oder b) die für die Kompilierung erforderlichen Systemtools vorhanden sind. Siehe: https://cran.r-project.org/bin/macosx/tools/

rcs
quelle
3
Ich habe dies versucht und eine Fehlermeldung erhalten: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALLIEREN RJSONIO_0.2-3.tar.gz Warnung: ungültiges Paket 'RJSONIO_0.2-3.tar.gz' Fehler: FEHLER: keine Pakete angegeben
1
Sie müssen den richtigen Pfad zur .tar.gz-Datei angeben und die XCode-Tools ( developer.apple.com/TOOLS/Xcode ) sind erforderlich.
rcs
1
Gibt es eine Möglichkeit, die binäre ZIP-Datei aus der Quelle zu erstellen?
Haridsv
5
Wenn Sie die Lösung gefunden haben, müssen Sie die Option --binary verwenden.
Haridsv
Wie oft sind Sie hierher gekommen, weil Sie install anstelle von INSTALL eingegeben haben?
Brandon Bertelsen
50

Sie können direkt aus dem Repository installieren (beachten Sie Folgendes type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
Eduardo Leoni
quelle
3
Ich versuchte dies und bekam eine Fehlermeldung: * Installation Source - Paket 'RJSONIO' ... ** ** Libs arch - i386 sh: make: Befehl nicht gefunden Error: Kompilation für Paket fehlgeschlagen 'RJSONIO' RMate an gestoppt Linie 3 * Entfernen ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Die heruntergeladenen Pakete befinden sich in' / private / var / folders / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / downloaded_packages 'HTML aktualisieren Index der Pakete in '.Library' Warnmeldung: In install.packages ("RJSONIO", repos = " omegahat.org/R " ,: Installation des Pakets 'RJSONIO' hatte einen Exit-Status ungleich Null
6
Haben Sie die Entwicklertools installiert? Sie kommen in der Mac OS X Installations-DVD. Da dieses Paket C-Code enthält, benötigen Sie einen Compiler, um es von der Quelle zu installieren.
Eduardo Leoni
1
Ich vermute, ich habe die Entwicklertools nicht installiert. Zumindest erinnere ich mich nicht daran, sie installiert zu haben. Vielen Dank!
4
Wenn Sie dies unter Windows tun, können Sie die Entwicklertools von murdoch-sutherland.com/Rtools herunterladen. Stellen Sie bei der Installation sicher, dass Sie das Kontrollkästchen aktivieren , das besagt, dass Ihr Pfad aktualisiert werden soll (möglicherweise etwas schwer zu lesen ...). Ich habe gerade das deaktivierte Kontrollkästchen aktiviert.)
Dan Goldstein
27

Ein ergänzender praktischer (aber trivialer) Tipp zum Installieren älterer Versionen von Paketen aus dem Quellcode.

Wenn Sie "install.packages" aufrufen, wird zunächst immer das neueste Paket von repo installiert. Wenn Sie die ältere Version von Paketen installieren möchten, beispielsweise aus Kompatibilitätsgründen, können Sie install.packages aufrufen ("url_to_source", repo = NULL, type = "source"). Zum Beispiel:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source")

Ohne Pakete manuell auf die lokale Festplatte herunterzuladen und zur Befehlszeile zu wechseln oder von der lokalen Festplatte zu installieren, fand ich es sehr praktisch und vereinfachte den Aufruf (in einem Schritt).

Plus: Sie können diesen Trick mit dem dev_mode der devtools-Bibliothek verwenden, um verschiedene Versionen von Paketen zu verwalten:

Referenz: doc devtools

ReneWang
quelle
9

Von cran aus können Sie direkt von einer Github-Repository-Adresse aus installieren. Wenn Sie das Paket also unter https://github.com/twitter/AnomalyDetection:

library(devtools)
install_github("twitter/AnomalyDetection")

macht den Trick.

Dodgie
quelle
8

Darüber hinaus können Sie das Binärpaket mit der Option --binary erstellen.

R CMD build --binary RJSONIO_0.2-3.tar.gz
haridsv
quelle
21
R CMD build --binaryist veraltet; Verwenden Sie R CMD INSTALL --buildstattdessen
f3lix