Installazione della versione precedente del pacchetto R.


134

Sto cercando di usare Rpy2 e ggplot2 ma ricevo un errore. Dopo aver cercato l'errore online, ho scoperto che l'errore si verifica perché ci sono cambiamenti nel pacchetto ggplot2 che non si riflettono ancora in Rpy2 (ad esempio, vedi questo post (Modifica: il link è ora morto)).

Quindi ora ho bisogno di installare una versione precedente di ggplot2. Ecco lo pseudo-codice per quello che voglio:

install.packages("ggplot2", version='0.9.1')

Ma install.packagesnon ha un versionargomento . Come lo faccio?


Risposte:


150

Per installare una versione precedente di un pacchetto dall'origine (all'interno di R):

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

Se questo non funziona per te e sei su Windows, il motivo è probabilmente la mancanza di una catena di strumenti appropriata per la creazione / compilazione di pacchetti . Normalmente si installa un binario precompilato da CRAN ma archiviano solo le origini dei pacchetti , non i binari. [1] Ciò significa che devi installare Rtools in modo da poter compilare tutto a livello locale. (Nota: Rtools non è un pacchetto R. )

La risposta di @ shadow in basso indica anche il caso che puoi usare devtools::install_version(). Anche questa è una buona idea, ma è anche soggetta alla necessità di Rtools su Windows.

A partire dal 18 settembre 2015, una nuova versione del pacchetto è apparsa su CRAN . Questo si basa sul server MRAN Revolution Analytics per installare pacchetti per versioni o date specifiche:

# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)

# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

Ciò ha il vantaggio di non richiedere a Rtools di installare pacchetti binari su Windows, ma funziona solo a partire dal 17-09-2014 (quando è stato lanciato MRAN).

Per installare una versione precedente dalla riga di comando (al di fuori di R):

Puoi anche installare un pacchetto usando R CMD INSTALLdalla riga di comando (Terminale, Prompt dei comandi, ecc.) Una volta che hai la fonte del pacchetto ("tarball") localmente sul tuo computer, ad esempio usando wget(se ce l'hai):

wget http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz

o, se sei su Windows, un equivalente usando PowerShell sarebbe:

(new-object System.Net.WebClient).DownloadFile("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz", "./ggplot2_0.9.1.tar.gz")

oppure puoi semplicemente scaricare la fonte dall'archivio CRAN tramite il tuo browser web.

Per installare dal file locale, puoi semplicemente fare:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Dovrebbe funzionare su qualsiasi piattaforma (con lo stesso avvertimento - come sopra - sulla necessità di una catena di strumenti per la costruzione di pacchetti).


[1] Questo non è più del tutto vero. Da marzo 2016, CRAN ha iniziato a ospitare un server "Archivio CRAN" che contiene file binari Windows e Mac per versioni molto vecchie di R (> 5 anni). Ora puoi installarlo direttamente da questo server usando install.packages(). Vedi la nuova R FAQ 7.44 per alcuni dettagli.


4
Grazie, immagino sia il modo corretto. Peccato che ora ottenga: Warning message: package ‘http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz’ is not available (for R version 2.15.2)
hirolau,

3
Ha avuto un problema simile con Rcpp. Ciò potrebbe essere dovuto alla dipendenza della versione R del pacchetto (DEPENDS: <version>) oppure la sessione R in esecuzione non ti consentirà di eseguire l'aggiornamento. Quello che ho trovato ha funzionato per me è stato quello di eseguire l'aggiornamento nel modo suggerito da Mark Butler (sotto) (R CMD INSTALL your_version.tar.gz). Questo era per R 2.15.3 nel mio caso.
Robert Casey,

@Antoine Sei su Windows? E, in tal caso, hai installato Rtools?
Thomas,

@Thomas Grazie per aver risposto. Sì, sono su Windows con Rtools "pseudo-installato". Vedi questo thread .
Antoine,

Thomas Sto per provare a eseguire il mio script su Amazon EC2 per evitare gli ovvi problemi locali sulla mia macchina (percorsi delle librerie, versioni di R vs versioni di pacchetti, problemi di compilazione ecc.)
Antoine,

87

Il remotespacchetto offre una install_versionfunzione che può farlo direttamente.

require(remotes)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

In precedenza, questa risposta indicava il devtoolspacchetto, che riesportava anche la install_versionfunzione. Grazie @MichaelChirico per aver sottolineato che il remotespacchetto è preferibile.


puoi mantenere più versioni dello stesso pacchetto senza dover install_versioncaricare ogni volta una versione specifica? dite:library(ggplot2-0.9.1)
Patrick,

1
@PatrickT Puoi farlo usando una biblioteca locale. Ad esempio install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')elibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
ombra,

1
potresti anche usare .libPaths ("/ dir_for_custom_library_versions") prima di eseguire install_version
tjjjohnson

1
Oggi penso remotes::install_versionsia preferibile poiché remotesè un pacchetto molto più leggero di devtools( devtools::install_versionè solo una riesportazione di remotes::install_version)
MichaelChirico,

5

L'uso install.packagescome descritto in un'altra risposta non funziona per me.

La migliore alternativa che ho trovato è usare la funzione install_urldal pacchetto devtools.

Un'altra possibilità che non ho esplorato ulteriormente:

  1. Scarica il file sorgente .tar.gz precedente dagli archivi del pacchetto.
  2. Seguire i passaggi documentati su http://rtm.wustl.edu/writings/htrtargz.pdf per installarlo localmente.

Questo non funziona per me, per favore segui la mia domanda stackoverflow.com/q/22673474/684229 per i dettagli.
TMS,

+1, Il R CMD INSTALLcomando funziona anche su Ubuntu. Grazie!!
Phani,

5

Puoi scaricare la versione appropriata dal link seguente come file zip.

http://cran.r-project.org/src/contrib/Archive/ggplot2/

In R Studio: Strumenti >> Installa pacchetti >> Installa da: (seleziona il menu a discesa)

File di archivio del pacchetto (.zip, .tar.gz).

Scegli il file zip-pacchetto-appena scaricato e installa il pacchetto


4

Ho trovato una buona soluzione, che ha funzionato per me (i dettagli sono al link ).

Comando nella libreria "repmis":

# Install old versions of the e1071 and gtools packages.

# Create vectors of the package names and versions to install
# Note the names and version numbers must be in the same order
Names <- c("e1071", "gtools")
Vers <- c("1.6", "2.6.1")

# Install old package versions into the default library
InstallOldPackages(pkgs = Names, versions = Vers)

1

install.packagesMetodo puro

Vedi questa discussione nella mailing list di r-devel . In risposta a Kurt Wheeler, Kurt Hornik rivela una funzionalità non documentata del sito Web CRAN per specificare la versione specifica di un pacchetto.

Questo metodo funzionerà finché avrai già installato tutte le dipendenze richieste:

package = "https://cran.r-project.org/package=svglite&version=1.2.1"
utils::install.packages(pkgs = package, repos = NULL)

Nota la struttura dell'URL sopra. Questo risolve il problema che CRAN ha una struttura URL diversa per l'ultima versione rispetto alle versioni archiviate:

# Latest version (not available at Archive/svglite)
https://cran.r-project.org/src/contrib/svglite_1.2.1.tar.gz
# Archived version
https://cran.r-project.org/src/contrib/Archive/svglite/svglite_1.2.0.tar.gz

remotes::install_version metodo

Un'altra opzione è utilizzare la remotes::install_version funzione . Tuttavia, dovrai installare il remotes pacchetto .


0

Esiste un versionspacchetto che semplifica notevolmente questa attività, per le versioni dei pacchetti rilasciate dal 17/09/2014. Utilizza le istantanee del server MRAN su Revolution Analytics per:

  • mostra le date di rilascio e la disponibilità MRAN di qualsiasi pacchetto CRAN ( available.versions),

  • installare le versioni specificate di uno o più pacchetti ( install.versions) o

  • installa le versioni del pacchetto disponibili a partire da qualsiasi data specificata ( install.dates). Esegue l'installazione dal server MRAN tramite la install.packagesfunzione standard , quindi è possibile installare le versioni binarie disponibili invece di dover compilare dall'origine e includere le dipendenze dei pacchetti alla data specificata.

Naturalmente potrebbero esserci problemi di compatibilità con combinazioni di versioni del pacchetto e versioni R. Per eseguire diverse versioni R, vedere ad esempio questa pagina .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.