Comment installer un package R à partir de la source?

392

Un ami m'a envoyé ce super tutoriel sur le Webscraping NYtimes avec R . J'aimerais vraiment l'essayer. Cependant, la première étape consiste à installer un package appelé RJSONIO à partir de la source.

Je connais assez bien R, mais je ne sais pas comment installer un paquet à partir des sources.

J'utilise Mac OSX.

Thomas
la source
1
Ceci est très étroitement lié: stackoverflow.com/questions/11105131/…
GSee

Réponses:

487

Si vous avez le fichier localement, utilisez install.packages()et définissez repos=NULL:

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

path_to_filereprésenterait le chemin d'accès complet et le nom du fichier:

  • Sur Windows , il ressemblera à quelque chose comme ceci: "C:\\RJSONIO_0.2-3.tar.gz".
  • Sous UNIX , il ressemblera à ceci: "/home/blah/RJSONIO_0.2-3.tar.gz".
Shane
la source
2
Cela fonctionne également si file_name_and_pathest le référentiel source local d'un package R.
Faheem Mitha
1
Notez que l' INSTALL_optsoption peut être utilisée pour transmettre des options à R CMD INSTALL. Par exemple, "--no-multiarch"
Andy Barbour
2
install.packages ("/ tmp / shiny_0.13.1.tar.gz", repos = NULL, type = "source") j'obtiens cette erreur: -ksh: erreur de syntaxe: `('inattendu
iaav
3
Comme l'a souligné @Cerin, vous devez vous occuper de l'extension. J'ai eu une erreur "(car 'lib' n'est pas spécifié)" de R avec les archives .zip. Tout fonctionne bien après avoir changé l'extension en .tar.
Mohamed Hasan
2
à noter car repos = NULLcette approche n'installera pas de dépendances, par exemple à partir de CRAN. cette réponsedevtools::install_local(path_to_file) me suggère laquelle est plus simple (moins d'arguments à fournir) et meilleure (installe également les dépendances).
mac
97

Téléchargez le package source, ouvrez Terminal.app, accédez au répertoire dans lequel vous avez actuellement le fichier, puis exécutez:

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

Notez que cela ne réussira que lorsque: a) le package n'a pas besoin de compilation ou b) les outils système nécessaires à la compilation sont présents. Voir: https://cran.r-project.org/bin/macosx/tools/

rcs
la source
3
J'ai essayé ceci et j'ai obtenu une erreur: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz Avertissement: paquet invalide 'RJSONIO_0.2-3.tar.gz' Erreur: ERREUR: aucun paquet spécifié
1
Vous devez spécifier le chemin d'accès correct au fichier .tar.gz et les outils XCode ( developer.apple.com/TOOLS/Xcode ) sont requis.
rcs
1
Existe-t-il un moyen de construire le .zip binaire à partir de la source?
haridsv
5
Vous avez trouvé la solution, vous devez utiliser l'option --binary.
haridsv
Combien de fois êtes-vous venu ici parce que vous avez tapé install au lieu de INSTALL?
Brandon Bertelsen
50

Vous pouvez installer directement depuis le référentiel (notez le type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source")
Eduardo Leoni
la source
3
J'ai essayé ceci et j'ai obtenu une erreur: * Installation du paquet source 'RJSONIO' ... ** libs ** arch - i386 sh: make: commande introuvable ERREUR: la compilation a échoué pour le paquet 'RJSONIO' RMate s'est arrêté à la ligne 3 * Suppression ' /Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO 'Les packages téléchargés sont dans' / private / var / folder / Ey / EyzhYjoKESmsmsZ6K87PeU +++ TI / -Tmp- / Rtmpe3C96p / téléchargé_packages 'Mise à jour du HTML index des packages dans '.Library' Message d'avertissement: Dans install.packages ("RJSONIO", repos = " omegahat.org/R " ,: l' installation du package 'RJSONIO' avait un état de sortie non nul
6
Avez-vous installé les outils de développement? Ils viennent dans le DVD d'installation de Mac OS X. Puisque ce paquet contient du code C, vous aurez besoin d'un compilateur pour l'installer à partir des sources.
Eduardo Leoni
1
Je soupçonne que je n'ai pas installé les outils de développement. Au moins, je ne me souviens pas de les avoir installés. Merci!
4
Si vous faites cela sur Windows, vous pouvez obtenir les outils de développement sur murdoch-sutherland.com/Rtools ... assurez-vous lors de l'installation de cocher la case qui dit de mettre à jour votre chemin (peut être un peu difficile à lire ... vient de cocher la case non cochée qui apparaît)
Dan Goldstein
27

Une astuce supplémentaire pratique (mais triviale) pour installer une ancienne version des packages à partir de la source.

Tout d'abord, si vous appelez "install.packages", il installe toujours le dernier package du repo. Si vous souhaitez installer l'ancienne version des packages, par exemple pour des raisons de compatibilité, vous pouvez appeler install.packages ("url_to_source", repo = NULL, type = "source"). Par exemple:

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

Sans télécharger manuellement les packages sur le disque local et passer à la ligne de commande ou installer à partir du disque local, j'ai trouvé que c'était très pratique et simplifiait l'appel (en une seule étape).

Le plus: vous pouvez utiliser cette astuce avec le dev_mode de la bibliothèque devtools, afin de gérer différentes versions de packages:

Référence: doc devtools

ReneWang
la source
9

Depuis cran , vous pouvez installer directement à partir d'une adresse de dépôt github. Donc, si vous voulez le package à https://github.com/twitter/AnomalyDetection:

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

fait l'affaire.

Dodgie
la source
8

De plus, vous pouvez créer le package binaire à l'aide de l'option --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz
haridsv
la source
21
R CMD build --binaryest obsolète; utiliser à la R CMD INSTALL --buildplace
f3lix