So wählen Sie einen CRAN-Spiegel in R aus

177

Ich versuche, ein Paket über die R-Eingabeaufforderung zu installieren, indem ich Folgendes tue:

install.packages('RMySQL')

Die Ausgabe ist jedoch wie folgt:

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

Und sonst nichts! Ich kann keine Lösung für dieses grundlegende Problem finden. Was soll ich eingeben, um einen CRAN-Spiegel auszuwählen?

BEARBEITEN:

Betriebssystem: Mac-OS X 10.6.8 R Version: 2.15.0

Jim Johnson
quelle
1
es sollte von 1 mit einer Liste von Zahlen kommen - 100 an den Spiegel coresponding, versuchen Sie die Eingabe 84 und drücken Sie die Eingabetaste
pyCthon
1
Fügen
1
Entweder sollte ein Fenster mit Auswahlen angezeigt werden, oder es sollte eine Liste mit Auswahlen in der Konsole angezeigt werden. Haben Sie nach einem separaten Fenster mit Auswahlmöglichkeiten gesucht? Wie läuft R?
Sayhey69
@pyCthon Ich habe 84 eingegeben, aber es wird nichts zurückgegeben.
Jim Johnson
@ sayhey69 Ich führe einfach R aus, indem ich die Eingabeaufforderung von meinem Terminal aus aufrufe. Ich tippe einfach r ein und der Dolmetscher kommt hoch. Ich hatte noch nie separate Fenster, in denen ich nach einer Auswahl gefragt habe.
Jim Johnson

Antworten:

275

Sie sollten entweder ein Fenster mit einer Liste von Repositorys oder ein Textmenü mit einigen Optionen erhalten. Wenn dies jedoch nicht angezeigt wird, können Sie mithilfe von reposParametern jederzeit den Spiegel angeben, von dem die Pakete selbst heruntergeladen werden sollen. Auf diese Weise fragt R Sie nicht mehr nach dem Repository. Beispiel:

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

Hier haben Sie eine Liste von Spiegeln für R.

Betabandido
quelle
1
Für mich kam das Repos-Popup, ich klickte auf einen Spiegel und dann passierte nichts; In der Zwischenzeit hat das gut funktioniert. Programmatische Lösung> wie gewohnt interaktive Lösung! Vielen Dank!
MichaelChirico
Und hier sind einige Spiegel zur Auswahl
Kochfelder
Ich fand dies eine nützliche Problemumgehung, um ein aktuelles Paket in MRO zu installieren. Ich habe einen Tag lang versucht, einen kürzlich erstellten Build eines Pakets zu installieren, aber die checkpointFunktion funktionierte nicht wie unter Verwendung der Anaconda-Distribution von R, v3.4.3 beschrieben, wobei der Snapshot auf 2017-09-01 eingestellt war.
Steven C. Howell
92

Folgendes mache ich, was im Grunde direkt von der example(Startup)Seite kommt:

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

das ist in ~/.Rprofile.

Bearbeiten: Da es jetzt 2018 ist, können wir hinzufügen, dass die URL in den letzten Jahren "https://cloud.r-project.org"vorzuziehen war, da sie a) https-Zugriff und b) ein CDN "immer in Ihrer Nähe" widerspiegelt.

Dirk Eddelbuettel
quelle
3
Ich denke, das sollte die akzeptierte Antwort sein. Es funktioniert in allen Fällen einfach, auch auf kopflosen Systemen (Server, IoT usw.). Danke, Dirk.
Jesse Adelman
4
Und im Nachhinein von einigen Jahren später haben wir jetzt ein richtiges CDN, das garantiert für alle netzwerknah ist, und wir verwenden es httpsjetzt https://cloud.r-project.orgals URL.
Dirk Eddelbuettel
Ich hoffe, es macht dir nichts aus, Dirk, aber ich habe deinen Beitrag gerade bearbeitet, um deinen Vorschlag widerzuspiegeln.
Jesse Adelman
Wenn ich gewollt hätte, dass ich es vor vier Stunden selbst hätte tun können. Ich lasse lieber die historischen Aufzeichnungen sprechen. Aber weil Vandalen kommen werden, habe ich ein Postscriptum
eingefügt
61

Ich bin ein Fan von:

chooseCRANmirror()

Dadurch wird die Liste der Spiegel in der Ausgabe gedruckt (kein Popup-Fenster, da Sie es vom Terminal aus ausführen), und Sie geben die gewünschte Nummer ein.

Jared
quelle
1
Hoppla, chooseCRANmirror(81)und Sie werden aufgefordert, eine Nummer einzugeben. Alles in der Konsole.
Jared
1
Hinweis: Dies scheint weder /etc/R/Rprofile.site noch ~ / .Rprofile zu aktualisieren. (Es ist also nicht gut, einen alternativen alten Spiegel auszuwählen, der verschwunden ist. Bearbeiten Sie die obigen Dateien besser direkt.)
Darren Cook
@DarrenCook Sie haben vielleicht Recht, aber ich finde, dass viele Leute von diesen Dateien eingeschüchtert werden können. Ich weiß, dass ich es war.
Jared
4
chooseCRANmirror(ind=81)ist das, was Jared wahrscheinlich gemeint hat. Die Eingabeaufforderung wird umgangen.
Casey Watson
1
Kann eingestellt options(menu.graphics = FALSE)in .Rprofilezu
Andy Barbour
27

Ich verwende die von Dirk vorgeschlagene ~ / .Rprofile-Lösung, wollte aber nur darauf hinweisen

chooseCRANmirror(graphics=FALSE)

scheint das Vernünftige zu sein

chooseCRANmirror(81)

, was vielleicht funktioniert, aber die magische Zahl 81 beinhaltet (oder vielleicht ist dies eine subtile Möglichkeit, den Tourismus auf 81 = UK (Bristol) zu fördern :-))

Vijucat
quelle
13

Der Repository-Auswahlbildschirm kann auf Ihrem System (OS X) nicht angezeigt werden, da OS X X11 nicht mehr enthält. R versucht, Ihnen die Eingabeaufforderung über X11 anzuzeigen. Installieren Sie X11 von http://xquartz.macosforge.org/landing/ . Führen Sie dann den Befehl install aus. Die Eingabeaufforderung für die Repo-Auswahl wird angezeigt.

Cahit Gungor
quelle
1
Dies sollte die akzeptierte Antwort sein. Der Apple Support-Artikel über die X11-Unterstützung in OS X finden Sie unter support.apple.com/kb/HT5293?viewlocale=de_DE&locale=de_DE
Jere Käpyaho
Das Problem ist wahrscheinlich, dass das Fenster aufgrund von X11 nicht angezeigt wird, aber chooseCRANmirror()/ reposparameter sind wahrscheinlich viel einfachere Lösungen.
Ben Mosher
4

Wenn Sie den Spiegel nicht interaktiv einstellen müssen (z. B. eine rbundler-Installation in einem Bereitstellungsskript durchführen), können Sie dies folgendermaßen tun:

Zuerst manuell ausführen:

chooseCRANmirror()

Wählen Sie die für Sie am besten geeignete Spiegelnummer und merken Sie sich diese. Um die Auswahl zu automatisieren:

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

Wobei 87 die Nummer des Spiegels ist, den Sie verwenden möchten. Dieses Snippet installiert auch das Rbundle für Sie. Sie können das weglassen, wenn Sie möchten.

Kyle
quelle
4

ich benutzte

chooseCRANmirror(81)

Sie werden aufgefordert, das Land auszuwählen. Anschließend können Sie eine Auswahl treffen, indem Sie den dort angegebenen Länderspiegelcode eingeben.

user3470929
quelle
2

Es sollte ein Dropdown-Menü angezeigt werden, aus dem Sie auswählen können (oder Sie erhalten eine Reihe von Zahlen zur Auswahl), unabhängig davon, ob Sie R im Terminal oder eine IDE wie RStudio verwenden. Dies wird unter Windows, Mac OS und den meisten Linux-Systemen unterstützt. Möglicherweise sind jedoch zusätzliche Konfigurationen oder Abhängigkeiten wie X-Windows erforderlich.

Verwenden Sie die folgenden -XYFlags, um X-Windows bei Verwendung des Remotezugriffs zu aktivieren :

ssh -XY username@server.domain

Es gibt häufig ein Standard-Repo, das jedoch angegeben werden kann, wenn Sie Probleme haben, z. B. das Ausführen von Skripten oder Rmarkdown / knitr. Sie können den repoOpset-Spiegel oder das Repository für CRAN bei jeder Installation verwenden mit:

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

Für schnellere Downloads ist es ratsam, den nächstgelegenen Spiegel zu Ihrem Standort zu verwenden. Beispielsweise:

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

Sie können die reposOption auch in Ihrer Sitzung festlegen, sodass Sie sie nur einmal pro interaktiver Sitzung (oder Skript) benötigen. Sie können überprüfen, ob reposFolgendes konfiguriert ist:

options(repos)

Wenn Sie erhalten "Error in options(repos) : object 'repos' not found", können Sie die Repository-Option festlegen. Beispielsweise:

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

Dann sollte es funktionieren, Pakete wie gewohnt zu installieren. Beispielsweise:

install.packages("RMySQL")

Wie von anderen erwähnt, können Sie das Repository in Ihrer .RprofileDatei konfigurieren und diese Funktion für alle Ihre Skripte verwenden. Es liegt an Ihnen, ob Sie diese "globalen" Optionen auf Ihrem System oder die "lokalen" Optionen in Ihrer Sitzung oder Ihrem Skript bevorzugen. Diese "lokalen" Optionen benötigen mehr Zeit für die Verwendung jeder Sitzung, haben jedoch den Vorteil, dass andere Benutzer Ihre Skripte verwenden können, wenn sie Ihre nicht haben .Rprofile.

Tom Kelly
quelle
0

Unter macOS hatte ich genau das, was Sie sagten: Eine Eingabeaufforderung "Bitte auswählen" und dann nichts mehr.

Nachdem ich X-Quartz geöffnet (und aktualisiert; weiß nicht, ob dies relevant war), R neu gestartet und erneut versucht habe, wurde nach einigen Sekunden eine X-Fenster-Liste mit Spiegeln zur Auswahl angezeigt. Ab dem dritten Mal war es schneller.

Chris F. Carroll
quelle
0

Sie können auch alle grafischen Menüs deaktivieren, indem Sie diese ausführen oder in Ihr Rprofile einfügen

options(menu.graphics = FALSE)
Extrapolator
quelle
0

Hinzufügen ~/.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
quelle