Cómo seleccionar un espejo CRAN en R

177

Estoy tratando de instalar un paquete a través del indicador R haciendo lo siguiente:

install.packages('RMySQL')

Pero el resultado es el siguiente:

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

¡Y nada más! No puedo encontrar una solución a este problema muy básico. ¿Qué se supone que debo escribir para seleccionar un espejo CRAN?

EDITAR:

SO: Mac-OS X 10.6.8 R Versión: 2.15.0

Jim Johnson
fuente
1
debe aparecer una lista de números del 1 al 100 que correspondan al espejo, intente escribir 84 y
presione
1
también agregue qué sistema operativo está utilizando y qué versión de R
pyCthon
1
Debería aparecer una ventana emergente con selecciones o debería aparecer una lista de selecciones en la consola. ¿Comprobó una ventana separada con opciones? ¿Cómo estás ejecutando R?
sayhey69
@pyCthon Escribí 84, pero no se devuelve nada.
Jim Johnson el
@ sayhey69 Simplemente estoy ejecutando R llamando al indicador desde mi terminal. Solo escribo r, y aparece el intérprete. Nunca he tenido ninguna ventana separada emergente pidiendo opciones.
Jim Johnson el

Respuestas:

277

Debería obtener una ventana con una lista de repositorios o un menú de texto con algunas opciones. Pero si eso no aparece, siempre puede especificar el espejo desde donde descargar los paquetes usted mismo usando el reposparámetro. Al hacer eso, R no le preguntará más sobre el repositorio. Ejemplo:

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

Aquí tienes una lista de espejos para R.

betabandido
fuente
1
Para mí, apareció la ventana emergente de repositorios, hice clic en un espejo y luego no pasó nada; Mientras tanto, esto funcionó bien. Solución programática> solución interactiva, ¡como siempre! ¡Gracias!
MichaelChirico
Y aquí están algunos espejos para elegir, a ser amable con cran: cran.r-project.org/mirrors.html
Placas
Me pareció una solución útil para instalar un paquete reciente en MRO. Pasé un día tratando de instalar una compilación reciente de un paquete, pero la checkpointfunción no funcionó como se describe usando la distribución de Anaconda de R, v3.4.3, con la instantánea establecida en 2017-09-01.
Steven C. Howell
93

Esto es lo que hago, que es básicamente directo de la example(Startup)página:

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

que está en ~/.Rprofile.

Editar: como ahora es 2018, podemos agregar que durante los últimos años la URL "https://cloud.r-project.org"ha sido preferible ya que refleja a) acceso https yb) un CDN "siempre cerca de usted".

Dirk Eddelbuettel
fuente
3
Creo que esta debería ser la respuesta aceptada. Simplemente funciona (tm), en todos los casos, incluso en sistemas sin cabeza (servidores, IoT, etc.). Gracias Dirk.
Jesse Adelman
44
Y en retrospectiva de varios años más tarde, ahora tenemos un CDN adecuado que está garantizado para estar cerca de la red para todos, y lo usamos httpsahora, así que haga de esto https://cloud.r-project.orgla URL.
Dirk Eddelbuettel
Espero que no te importe, Dirk, pero acabo de editar tu publicación para reflejar tu sugerencia.
Jesse Adelman
Si hubiera querido eso, podría haberlo hecho hace cuatro horas. Prefiero dejar que hable el registro histórico. Pero como vendrán vándalos, puse un
postdacto
61

Soy un fan de:

chooseCRANmirror()

Lo cual imprimirá la lista de espejos en la salida (no se preocupe una ventana emergente ya que lo está ejecutando desde el terminal) y luego ingrese el número que desea.

Jared
fuente
1
Vaya, hazlo chooseCRANmirror(81)y aparecerá un mensaje para que ingreses un número. Todo en la consola.
Jared
1
Nota: esto no parece actualizar ni /etc/R/Rprofile.site ni ~ / .Rprofile. (Por lo tanto, no es bueno elegir un espejo antiguo alternativo que haya desaparecido. Es mejor editar los archivos anteriores directamente).
Darren Cook
@DarrenCook Puede que tengas razón, pero creo que mucha gente puede sentirse intimidada por esos archivos. Se que lo estaba.
Jared
44
chooseCRANmirror(ind=81)es lo que Jared probablemente quiso decir. Omitirá el aviso.
Casey Watson
1
Se puede establecer options(menu.graphics = FALSE)en .Rprofiledemasiado
Andy Barbour
27

Utilizo la solución ~ / .Rprofile sugerida por Dirk, pero solo quería señalar que

chooseCRANmirror(graphics=FALSE)

parece ser lo más sensato que hacer en lugar de

chooseCRANmirror(81)

, que puede funcionar, pero que implica el número mágico 81 (o tal vez esta es una forma sutil de promover el turismo a 81 = Reino Unido (Bristol) :-))

vijucat
fuente
13

La pantalla de selección de repositorio no se puede mostrar en su sistema (OS X), ya que OS X ya no incluye X11. R intenta mostrarle el mensaje a través de X11. Instale X11 desde http://xquartz.macosforge.org/landing/ . Luego ejecute el comando de instalación. Se mostrará el mensaje de selección de repositorio.

Cahit Gungor
fuente
1
Esta debería ser la respuesta aceptada. El artículo de soporte de Apple sobre el soporte X11 en OS X se encuentra en support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
Jere Käpyaho
El problema es probable que la ventana no se muestre debido a X11, pero podría decirse que chooseCRANmirror()/ reposparámetro son soluciones mucho más simples.
Ben Mosher
4

Si necesita configurar el espejo de una manera no interactiva (por ejemplo, haciendo una instalación de rbundler en un script de implementación), puede hacerlo de esta manera:

Primero ejecutado manualmente:

chooseCRANmirror()

Elija el número de espejo que sea mejor para usted y recuérdelo. Luego, para automatizar la selección:

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

Donde 87 es el número del espejo que le gustaría usar. Este fragmento también instala el paquete por ti. Puede omitir eso si lo desea.

Kyle
fuente
4

solía

chooseCRANmirror(81)

le da un aviso para seleccionar el país. Luego puede hacer una selección escribiendo el código espejo del país especificado allí.

usuario3470929
fuente
2

Debería aparecer un menú desplegable para que seleccione (o obtendrá un montón de números para elegir), ya sea que esté utilizando R en el terminal o un IDE como RStudio. Esto es compatible con Windows, Mac OS y la mayoría de los sistemas Linux. Sin embargo, puede requerir configuración adicional o dependencias como X-windows.

Para habilitar X-windows cuando se usa acceso remoto, use los siguientes -XYindicadores:

ssh -XY username@server.domain

A menudo hay un repositorio predeterminado, pero se puede especificar si tiene algún problema, como ejecutar scripts o Rmarkdown / knitr. Puede usar el repoopset, el espejo o el repositorio para CRAN cada vez que instale con:

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

Es recomendable utilizar el espejo más cercano a su ubicación para descargas más rápidas. Por ejemplo:

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

También puede configurar la reposopción en su sesión para que solo la necesite una vez por sesión interactiva (o secuencia de comandos). Puede verificar si reposestá configurado con:

options(repos)

Si obtiene "Error in options(repos) : object 'repos' not found", puede configurar la opción de repositorio. Por ejemplo:

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

Entonces debería funcionar instalar paquetes como de costumbre. Por ejemplo:

install.packages("RMySQL")

Como lo mencionaron otros, puede configurar el repositorio en su .Rprofilearchivo y hacer que funcione en todos sus scripts. Depende de usted si prefiere estas opciones "globales" en su sistema u opciones "locales" en su sesión o script. Estas opciones "locales" requieren más tiempo para usar cada sesión, pero tienen el beneficio de hacer que otros puedan usar sus secuencias de comandos si no tienen la suya .Rprofile.

Tom Kelly
fuente
0

Tenía, en macOS, exactamente lo que dices: un mensaje 'selecciona' y nada más.

Después de que abrí (y actualicé; no sé si eso era relevante) X-Quartz, y luego reinicié R e intenté nuevamente, obtuve una lista de espejos de la ventana X para elegir después de unos segundos. Fue más rápido la tercera vez en adelante.

Chris F Carroll
fuente
0

También puede deshabilitar todos los menús gráficos ejecutándolo o colocándolo en su perfil R

options(menu.graphics = FALSE)
Extrapolador
fuente
0

Agregar 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
})
usuario6047846
fuente