Come selezionare un mirror CRAN in R


177

Sto cercando di installare un pacchetto tramite il prompt R effettuando le seguenti operazioni:

install.packages('RMySQL')

Ma l'output è il seguente:

--- Please select a CRAN mirror for use in this session ---

E nient'altro! Non riesco a trovare una soluzione a questo problema di base. Cosa dovrei digitare per selezionare un mirror CRAN?

MODIFICARE:

Sistema operativo: Mac-OS X 10.6.8 R Versione: 2.15.0


1
dovrebbe apparire un elenco di numeri da 1 a 100 corrispondenti al mirror, provare a digitare 84 e
premere invio

1
aggiungi anche quale sistema operativo stai utilizzando e quale versione di R
pyCthon il

1
Dovrebbe apparire una finestra con le selezioni o un elenco di selezioni dovrebbe apparire nella console. Hai controllato una finestra separata con le scelte? Come stai correndo R?
sayhey69,

@pyCthon Ho digitato 84, ma non viene restituito nulla.
Jim Johnson,

@ sayhey69 Sto semplicemente eseguendo R chiamando il prompt dal mio terminale. Digito semplicemente r e viene visualizzato l'interprete. Non ho mai visto finestre separate spuntare per chiedere delle scelte.
Jim Johnson,

Risposte:


277

Dovresti ottenere una finestra con un elenco di repository o un menu di testo con alcune opzioni. Ma se ciò non viene visualizzato, è sempre possibile specificare il mirror da dove scaricare i pacchetti utilizzando il reposparametro. In questo modo, R non ti chiederà più informazioni sul repository. Esempio:

install.packages('RMySQL', repos='http://cran.us.r-project.org')

Ecco un elenco di mirror per R.


1
Per me, è arrivato il pop-up repository, ho fatto clic su uno specchio e poi non è successo nulla; nel frattempo, ha funzionato bene. Soluzione programmatica> soluzione interattiva, come al solito! Grazie!
MichaelChirico,

Ed ecco alcuni specchi tra cui scegliere, per essere gentili con cran: cran.r-project.org/mirrors.html
piani cottura

Ho trovato una soluzione utile per installare un pacchetto recente in MRO. Ho trascorso una giornata cercando di ottenere una build recente di un pacchetto installato ma la checkpointfunzione non ha funzionato come descritto usando la distribuzione di Anaconda di R, v3.4.3, con lo snapshot impostato su 2017-09-01.
Steven C. Howell,

93

Ecco cosa faccio, che è sostanzialmente direttamente dalla example(Startup)pagina:

## Default repo
local({r <- getOption("repos")
       r["CRAN"] <- "http://cran.r-project.org" 
       options(repos=r)
})

che è dentro ~/.Rprofile.

Modifica: com'è ora il 2018, possiamo aggiungere che negli ultimi anni l'URL "https://cloud.r-project.org"è stato preferibile in quanto riflette a) accesso https eb) un CDN "sempre vicino a te".


3
Penso che questa dovrebbe essere la risposta accettata. Funziona appena (tm), in tutti i casi, anche su sistemi senza testa (server, IoT, ecc.). Grazie Dirk.
Jesse Adelman,

4
E con il senno di poi, diversi anni dopo, ora abbiamo un CDN appropriato che è garantito per essere vicino alla rete a tutti, e httpsora lo usiamo così rendendolo https://cloud.r-project.orgcome l'URL.
Dirk Eddelbuettel,

Spero non ti dispiaccia, Dirk, ma ho appena modificato il tuo post per riflettere il tuo suggerimento.
Jesse Adelman,

Se avessi voluto che avrei potuto farlo da solo quattro ore fa. Preferisco lasciare parlare il record storico. Ma poiché arriveranno i vandali, inserisco un post scriptum.
Dirk Eddelbuettel,

61

Sono un fan di:

chooseCRANmirror()

Che stamperà l'elenco dei mirror nell'output (non preoccuparti di una finestra popup poiché lo stai eseguendo dal terminale) e quindi inserisci il numero desiderato.


1
Oops, fallo chooseCRANmirror(81)e ti viene richiesto di inserire un numero. Tutto nella console.
Jared

1
Nota: questo non sembra aggiornare /etc/R/Rprofile.site o ~ / .Rprofile. (Quindi, non è buono per scegliere un vecchio mirror alternativo che è scomparso. Meglio modificare direttamente i file sopra.)
Darren Cook

@DarrenCook Potresti avere ragione, ma trovo che molte persone possano essere intimidite da quei file. So di esserlo.
Jared,

4
chooseCRANmirror(ind=81)è quello che probabilmente intendeva Jared. Eviterà il prompt.
Casey Watson,

1
Può regolare options(menu.graphics = FALSE)in .Rprofiletroppo
Andy Barbour

27

Uso la soluzione ~ / .Rprofile suggerita da Dirk, ma volevo solo precisarlo

chooseCRANmirror(graphics=FALSE)

sembra essere la cosa sensata da fare invece di

chooseCRANmirror(81)

, che potrebbe funzionare, ma che coinvolge il numero magico 81 (o forse questo è un modo sottile per promuovere il turismo in 81 = UK (Bristol) :-))


13

La schermata di selezione del repository non può essere visualizzata sul sistema (OS X), poiché OS X non include più X11. R tenta di mostrarti il ​​prompt tramite X11. Installa X11 da http://xquartz.macosforge.org/landing/ . Quindi eseguire il comando di installazione. Verrà visualizzato il prompt di selezione repo.


1
Questa dovrebbe essere la risposta accettata. L'articolo di supporto Apple sul supporto X11 in OS X è disponibile all'indirizzo support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
Jere Käpyaho

Il problema è probabile che la finestra non venga visualizzata a causa di X11, ma probabilmente i parametri chooseCRANmirror()/ repossono soluzioni molto più semplici.
Ben Mosher,

4

Se è necessario impostare il mirror in modo non interattivo (ad esempio eseguendo un'installazione rbundler in uno script di distribuzione), è possibile farlo in questo modo:

Prima esecuzione manuale:

chooseCRANmirror()

Scegli il numero mirror più adatto a te e ricordalo. Quindi per automatizzare la selezione:

R -e 'chooseCRANmirror(graphics=FALSE, ind=87);library(rbundler);bundle()'

Dove 87 è il numero del mirror che si desidera utilizzare. Questo frammento installa anche rbundle per te. Puoi ometterlo se vuoi.


4

ero solito

chooseCRANmirror(81)

ti dà la richiesta di selezionare il paese. Quindi è possibile effettuare una selezione digitando il codice mirror del paese specificato lì.


2

Verrà visualizzato un menu a discesa da cui selezionare (o si otterrà un sacco di numeri tra cui scegliere), sia che si utilizzi R nel terminale o un IDE come RStudio. Questo è supportato su Windows, Mac OS e la maggior parte dei sistemi Linux. Tuttavia, potrebbe richiedere una configurazione aggiuntiva o dipendenze come X-windows.

Per abilitare X-windows quando si usa l'accesso remoto usare i seguenti -XYflag:

ssh -XY username@server.domain

Esiste spesso un repository predefinito ma questo può essere specificato in caso di problemi, come l'esecuzione di script o Rmarkdown / knitr. È possibile utilizzare l' repoopset mirror o repository per CRAN ogni volta che si installa con:

install.packages("package", repo="<your.nearest.mirror>")

Si consiglia di utilizzare il mirror più vicino alla propria posizione per download più rapidi. Per esempio:

install.packages("RMySQL", repos="https://cran.stat.auckland.ac.nz/")

Puoi anche impostare l' reposopzione nella tua sessione in modo da averne bisogno solo una volta per sessione interattiva (o script). Puoi verificare se reposè configurato con:

options(repos)

Se lo ottieni "Error in options(repos) : object 'repos' not found", puoi impostare l'opzione del repository. Per esempio:

options(repos = "https://cran.stat.auckland.ac.nz/")

Quindi dovrebbe funzionare per installare i pacchetti come al solito. Per esempio:

install.packages("RMySQL")

Come menzionato da altri, puoi configurare il repository nel tuo .Rprofilefile e fare in modo che questo funzioni su tutti i tuoi script. Sta a te decidere se preferisci queste opzioni "globali" sul tuo sistema o opzioni "locali" nella tua sessione o script. Queste opzioni "locali" richiedono più tempo per utilizzare ogni sessione ma hanno il vantaggio di rendere gli altri in grado di utilizzare i tuoi script se non ne hanno .Rprofile.


0

Avevo, su macOS, l'esatta cosa che dici: un prompt 'per favore seleziona' e poi niente di più.

Dopo aver aperto (e aggiornato; non so se fosse rilevante) X-Quartz, quindi ho riavviato R e riprovato, dopo pochi secondi ho ottenuto un elenco di mirroring di X-window. La terza volta fu più veloce.


0

Puoi anche disabilitare tutti i menu grafici eseguendo questo o posizionandolo nel tuo Rprofile

options(menu.graphics = FALSE)

0

Aggiungi a ~/.Rprofile

local({r <- getOption("repos")
    r["CRAN"] <- "mirror_site"  #for example, https://mirrors.ustc.edu.cn/CRAN/
    options(repos=r)
    options(BioC_mirror="bioc_mirror_site") #if using biocLite
})
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.