Comment sélectionner un miroir CRAN dans R

185

J'essaie d'installer un package via l'invite R en procédant comme suit:

install.packages('RMySQL')

Mais le résultat est le suivant:

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

Et rien d'autre! Je ne trouve pas de solution à ce problème très basique. Que dois-je taper pour sélectionner un miroir CRAN?

ÉDITER:

Système d'exploitation: Mac-OS X 10.6.8 R Version: 2.15.0

Jim Johnson
la source
1
il devrait proposer une liste de nombres de 1 à 100 correspondant au miroir, essayez de taper 84 et appuyez sur Entrée
pyCthon
1
ajoutez également quel système d'exploitation vous utilisez et quelle version de R
pyCthon
1
Soit une fenêtre doit apparaître avec des sélections, soit une liste de sélections doit apparaître dans la console. Avez-vous vérifié une fenêtre séparée avec des choix? Comment exécutez-vous R?
sayhey69
@pyCthon J'ai tapé 84, mais rien n'est retourné.
Jim Johnson du
@ sayhey69 J'exécute simplement R en appelant l'invite depuis mon terminal. Je tape juste r, et l'interprète arrive. Je n'ai jamais eu de fenêtres séparées pour demander des choix.
Jim Johnson le

Réponses:

287

Vous devriez obtenir une fenêtre avec une liste de référentiels ou un menu texte avec quelques options. Mais si cela n'apparaît pas, vous pouvez toujours spécifier le miroir d'où télécharger les packages vous-même en utilisant le reposparamètre. En faisant cela, R ne vous posera plus de questions sur le référentiel. Exemple:

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

Voici une liste de miroirs pour R.

betabandido
la source
1
Pour moi, le pop-up des pensions est venu, j'ai cliqué sur un miroir, puis rien ne s'est passé; en attendant, cela a bien fonctionné. Solution programmatique> solution interactive, comme d'habitude! Merci!
MichaelChirico
Et voici quelques miroirs au choix, à être bons à Cran: cran.r-project.org/mirrors.html
plaques
J'ai trouvé cela une solution de contournement utile pour installer un package récent dans MRO. J'ai passé une journée à essayer d'installer une version récente d'un package, mais la checkpointfonction ne fonctionnait pas comme décrit en utilisant la distribution Anaconda de R, v3.4.3, avec l'instantané défini sur 01/09/2017.
Steven C. Howell
94

Voici ce que je fais, qui vient directement de la example(Startup)page:

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

qui est en ~/.Rprofile.

Edit: Comme nous sommes maintenant en 2018, nous pouvons ajouter que ces dernières années, l'URL "https://cloud.r-project.org"a été préférable car elle reflète a) un accès https et b) un CDN "toujours proche de vous".

Dirk Eddelbuettel
la source
3
Je pense que cela devrait être la réponse acceptée. It Just Works (tm), dans tous les cas, y compris sur les systèmes headless (serveurs, IoT, etc.). Merci, Dirk.
Jesse Adelman
4
Et avec le recul de plusieurs années plus tard, nous avons maintenant un CDN approprié qui est garanti d'être proche du réseau pour tout le monde, et nous l'utilisons httpsmaintenant https://cloud.r-project.orgcomme URL.
Dirk Eddelbuettel
J'espère que cela ne vous dérange pas, Dirk, mais je viens de modifier votre message pour refléter votre suggestion.
Jesse Adelman
Si j'avais voulu cela, j'aurais pu le faire moi-même il y a quatre heures. Je préfère laisser parler l'histoire. Mais parce que les vandales viendront, je mets un post-scriptum.
Dirk Eddelbuettel
62

Je suis fan de:

chooseCRANmirror()

Ce qui imprimera la liste des miroirs dans la sortie (pas de soucis pour une fenêtre popup puisque vous l'exécutez depuis le terminal) et ensuite vous entrez le numéro que vous voulez.

Jared
la source
1
Oups, faites-le chooseCRANmirror(81)et il vous invite à entrer un numéro. Tout dans la console.
Jared
1
Remarque: cela ne semble pas mettre à jour /etc/R/Rprofile.site ou ~ / .Rprofile. (Donc, ce n'est pas bon de choisir un ancien miroir alternatif qui a disparu. Mieux vaut éditer les fichiers ci-dessus directement.)
Darren Cook
@DarrenCook Vous avez peut-être raison, mais je trouve que beaucoup de gens peuvent être intimidés par ces fichiers. Je sais que je l'étais.
Jared
4
chooseCRANmirror(ind=81)est ce que Jared voulait probablement dire. Il contournera l'invite.
Casey Watson
1
Peut mettre options(menu.graphics = FALSE)en .Rprofiletrop
Andy Barbour
27

J'utilise la solution ~ / .Rprofile suggérée par Dirk, mais je voulais juste souligner que

chooseCRANmirror(graphics=FALSE)

semble être la chose sensée à faire au lieu de

chooseCRANmirror(81)

, qui peut fonctionner, mais qui implique le nombre magique 81 (ou peut-être que c'est une façon subtile de promouvoir le tourisme à 81 = Royaume-Uni (Bristol) :-))

vijucat
la source
13

L'écran de sélection du référentiel ne peut pas être affiché sur votre système (OS X), car OS X n'inclut plus X11. R essaie de vous montrer l'invite via X11. Installez X11 depuis http://xquartz.macosforge.org/landing/ . Exécutez ensuite la commande d'installation. L'invite de sélection de repo s'affiche.

Cahit Gungor
la source
1
Cela devrait être la réponse acceptée. L'article d'assistance Apple concernant la prise en charge de X11 dans OS X est disponible à l'
adresse
Le problème est probablement que la fenêtre ne s'affiche pas à cause de X11, mais on peut soutenir que chooseCRANmirror()/ reposparameter sont des solutions beaucoup plus simples.
Ben Mosher
5

j'ai utilisé

chooseCRANmirror(81)

il vous invite à sélectionner le pays. Ensuite, vous pouvez faire une sélection en tapant le code miroir du pays spécifié ici.

utilisateur3470929
la source
4

Si vous avez besoin de définir le miroir de manière non interactive (par exemple en effectuant une installation de rbundler dans un script de déploiement), vous pouvez le faire de cette manière:

Exécutez d'abord manuellement:

chooseCRANmirror()

Choisissez le numéro de miroir qui vous convient le mieux et souvenez-vous-en. Puis pour automatiser la sélection:

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

Où 87 est le numéro du miroir que vous souhaitez utiliser. Cet extrait de code installe également le rbundle pour vous. Vous pouvez omettre cela si vous le souhaitez.

Kyle
la source
2

Un menu déroulant devrait apparaître pour que vous puissiez sélectionner (ou vous obtiendrez un tas de nombres à choisir), que vous utilisiez R dans le terminal ou un IDE tel que RStudio. Ceci est pris en charge sur Windows, Mac OS et la plupart des systèmes Linux. Cependant, cela peut nécessiter une configuration supplémentaire ou des dépendances telles que X-windows.

Pour activer X-windows lors de l'utilisation de l'accès à distance, utilisez les -XYindicateurs suivants :

ssh -XY [email protected]

Il existe souvent un référentiel par défaut, mais cela peut être spécifié si vous rencontrez un problème, tel que l'exécution de scripts ou Rmarkdown / knitr. Vous pouvez utiliser lerepo opset le miroir ou le référentiel pour CRAN chaque fois que vous installez avec:

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

Il est conseillé d'utiliser le miroir le plus proche de votre emplacement pour des téléchargements plus rapides. Par exemple:

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

Vous pouvez également définir l' reposoption dans votre session afin que vous n'en ayez besoin qu'une seule fois par session interactive (ou script). Vous pouvez vérifier sirepos est configuré avec:

options(repos)

Si vous obtenez "Error in options(repos) : object 'repos' not found" vous pouvez définir l'option de référentiel. Par exemple:

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

Ensuite, cela devrait fonctionner pour installer les packages comme d'habitude. Par exemple:

install.packages("RMySQL")

Comme mentionné par d'autres, vous pouvez configurer le référentiel dans votre .Rprofilefichier et que ce travail fonctionne sur tous vos scripts. C'est à vous de décider si vous préférez ces options "globales" sur votre système ou les options "locales" dans votre session ou script. Ces options "locales" prennent plus de temps à utiliser chaque session, mais ont l'avantage de permettre à d'autres utilisateurs d'utiliser vos scripts s'ils ne disposent pas du vôtre .Rprofile.

Tom Kelly
la source
0

J'avais, sur macOS, la chose exacte que vous dites: une invite `` veuillez sélectionner '', puis rien de plus.

Après avoir ouvert (et mis à jour; je ne sais pas si c'était pertinent) X-Quartz, puis redémarré R et essayé à nouveau, j'ai eu une liste de miroirs X-window à choisir après quelques secondes. C'était plus rapide la troisième fois.

Chris F Carroll
la source
0

Vous pouvez également désactiver tous les menus graphiques en exécutant ceci ou en le plaçant dans votre Rprofile

options(menu.graphics = FALSE)
Extrapolateur
la source
0

Ajouter dans ~/.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
})
user6047846
la source