Cara memilih cermin CRAN di R


177

Saya mencoba menginstal paket melalui R prompt dengan melakukan hal berikut:

install.packages('RMySQL')

Tetapi hasilnya adalah sebagai berikut:

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

Dan tidak ada lagi! Saya tidak dapat menemukan solusi untuk masalah yang sangat mendasar ini. Apa yang harus saya ketik untuk memilih cermin CRAN?

EDIT:

OS: Mac-OS X 10.6.8 R Versi: 2.15.0


1
harus muncul dengan daftar angka dari 1 - 100 sesuai dengan cermin, coba ketik 84 dan tekan enter
pyCthon

1
juga tambahkan OS apa yang Anda gunakan, dan versi R
pyCthon

1
Entah sebuah jendela akan muncul dengan pilihan atau daftar pilihan akan muncul di konsol. Apakah Anda memeriksa jendela terpisah dengan pilihan? Bagaimana Anda menjalankan R?
sayhey69

@pyCthon saya mengetik 84, tetapi tidak ada yang dikembalikan.
Jim Johnson

@ sayhey69 Saya hanya menjalankan R dengan memanggil prompt dari terminal saya. Saya cukup mengetikkan r, dan juru bahasa muncul. Saya tidak pernah memiliki jendela terpisah yang muncul untuk meminta pilihan.
Jim Johnson

Jawaban:


277

Anda harus mendapatkan jendela dengan daftar repositori atau menu teks dengan beberapa opsi. Tetapi jika itu tidak muncul, Anda selalu dapat menentukan mirror dari mana Anda harus mengunduh sendiri paket dengan menggunakan reposparameter. Dengan melakukan itu, R tidak akan bertanya lagi tentang repositori. Contoh:

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

Di sini Anda memiliki daftar mirror untuk R.


1
Bagi saya, pop-up repos datang, saya mengklik cermin, dan kemudian tidak ada yang terjadi; sementara itu, ini bekerja dengan baik. Solusi terprogram> solusi interaktif, seperti biasa! Terima kasih!
MichaelChirico

Dan berikut adalah beberapa mirror untuk dipilih, untuk menjadi ramah kepada cran: cran.r-project.org/mirrors.html
hobs

Saya menemukan ini solusi yang berguna untuk menginstal paket terbaru ke MRO. Saya menghabiskan satu hari mencoba untuk mendapatkan paket yang baru diinstal tetapi checkpointfungsi tidak bekerja seperti yang dijelaskan menggunakan distribusi Anaconda untuk R, v3.4.3, dengan set snapshot ke 2017-09-01.
Steven C. Howell

93

Inilah yang saya lakukan, yang pada dasarnya langsung dari example(Startup)halaman:

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

yang ada di ~/.Rprofile.

Sunting: Seperti sekarang 2018, kita dapat menambahkan bahwa selama beberapa tahun terakhir URL "https://cloud.r-project.org"lebih disukai karena mencerminkan a) https akses dan b) CDN "selalu dekat dengan Anda".


3
Saya pikir ini harus menjadi jawaban yang diterima. It Just Works (tm), dalam semua kasus, termasuk pada sistem tanpa kepala (server, IoT, dll.). Terima kasih, Dirk.
Jesse Adelman

4
Dan dengan melihat ke belakang dari beberapa tahun kemudian kita sekarang CDN yang tepat yang dijamin akan dekat-jaringan dengan semua orang, dan kita gunakan httpssekarang jadi jadikan ini https://cloud.r-project.orgsebagai URL.
Dirk Eddelbuettel

Saya harap Anda tidak keberatan, Dirk, tetapi saya baru saja mengedit posting Anda untuk mencerminkan saran Anda.
Jesse Adelman

Jika saya ingin saya bisa melakukannya sendiri empat jam yang lalu. Saya lebih suka membiarkan catatan sejarah berbicara. Tetapi karena pengacau akan datang, saya memasukkan postscriptum.
Dirk Eddelbuettel

61

Saya penggemar:

chooseCRANmirror()

Yang akan mencetak daftar mirror di output (tidak perlu khawatir jendela popup karena Anda menjalankannya dari terminal) dan kemudian Anda memasukkan nomor yang Anda inginkan.


1
Ups, lakukan chooseCRANmirror(81)dan ini memunculkan prompt bagi Anda untuk memasukkan nomor. Semua ada di konsol.
Jared

1
Catatan: ini tidak muncul untuk memperbarui /etc/R/Rprofile.site atau ~ / .Rprofile. (Jadi, tidak baik untuk memilih mirror lama alternatif yang telah menghilang. Lebih baik mengedit file-file di atas secara langsung.)
Darren Cook

@ DarrenCook Anda mungkin benar tetapi saya menemukan banyak orang dapat diintimidasi oleh file-file itu. Saya tahu saya.
Jared

4
chooseCRANmirror(ind=81)mungkin itulah yang dimaksud Jared. Ini akan mem-bypass prompt.
Casey Watson

1
Dapat mengatur options(menu.graphics = FALSE)di .Rprofileterlalu
Andy Barbour

27

Saya menggunakan solusi ~ / .Reprofile yang disarankan oleh Dirk, tapi saya hanya ingin menunjukkan itu

chooseCRANmirror(graphics=FALSE)

tampaknya menjadi hal yang masuk akal untuk dilakukan

chooseCRANmirror(81)

, yang mungkin berfungsi, tetapi yang melibatkan angka ajaib 81 (atau mungkin ini cara yang halus untuk mempromosikan pariwisata ke 81 = Inggris (Bristol) :-))


13

Layar pemilihan repositori tidak dapat ditampilkan pada sistem Anda (OS X), karena OS X tidak lagi menyertakan X11. R mencoba menampilkan prompt melalui X11. Instal X11 dari http://xquartz.macosforge.org/landing/ . Kemudian jalankan perintah install. Permintaan pemilihan repo akan ditampilkan.


1
Ini harus menjadi jawaban yang diterima. Artikel dukungan Apple tentang dukungan X11 di OS X ada di support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
Jere Käpyaho

Masalahnya adalah kemungkinan bahwa jendela tidak muncul karena X11, tetapi bisa dibilang, chooseCRANmirror()/ reposparameter adalah solusi yang lebih sederhana.
Ben Mosher

4

Jika Anda perlu mengatur mirror dengan cara yang tidak interaktif (misalnya melakukan instalasi rbundler dalam skrip deploy) Anda dapat melakukannya dengan cara ini:

Pertama kali dijalankan secara manual:

chooseCRANmirror()

Pilih nomor cermin yang terbaik untuk Anda dan ingatlah. Kemudian untuk mengotomatiskan pemilihan:

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

Di mana 87 adalah jumlah cermin yang ingin Anda gunakan. Cuplikan ini juga memasang rbundle untuk Anda. Anda dapat menghilangkannya jika mau.


4

Saya menggunakan

chooseCRANmirror(81)

itu memberi Anda prompt untuk memilih negara. Kemudian Anda dapat melakukan seleksi dengan mengetik kode mirror negara yang ditentukan di sana.


2

Menu drop down akan muncul untuk Anda pilih (atau Anda akan mendapatkan banyak nomor untuk dipilih), apakah Anda menggunakan R di terminal atau IDE seperti RStudio. Ini didukung pada Windows, Mac OS, dan sebagian besar sistem Linux. Namun, ini mungkin memerlukan konfigurasi atau dependensi tambahan seperti X-windows.

Untuk mengaktifkan X-windows saat menggunakan akses jarak jauh gunakan -XYbendera berikut :

ssh -XY username@server.domain

Seringkali ada repo default tetapi ini dapat ditentukan jika Anda memiliki masalah, seperti menjalankan skrip atau Rmarkdown / knitr. Anda dapat menggunakan repoopset mirror atau repositori untuk CRAN setiap kali Anda menginstal dengan:

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

Dianjurkan untuk menggunakan mirror terdekat ke lokasi Anda untuk mengunduh lebih cepat. Sebagai contoh:

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

Anda juga dapat mengatur reposopsi di sesi Anda sehingga Anda hanya perlu melakukannya sekali per sesi interaktif (atau skrip). Anda dapat memeriksa apakah reposdikonfigurasi dengan:

options(repos)

Jika Anda dapat, "Error in options(repos) : object 'repos' not found"maka Anda dapat mengatur opsi repositori. Sebagai contoh:

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

Maka harus menginstal paket seperti biasa. Sebagai contoh:

install.packages("RMySQL")

Seperti yang disebutkan oleh orang lain, Anda dapat mengonfigurasi repositori di .Rprofilefile Anda dan mengaturnya di semua skrip Anda. Terserah Anda apakah Anda lebih suka opsi "global" ini di sistem Anda atau opsi "lokal" di sesi atau skrip Anda. Opsi "lokal" ini membutuhkan lebih banyak waktu untuk menggunakan setiap sesi tetapi memiliki manfaat membuat orang lain dapat menggunakan skrip Anda jika mereka tidak memilikinya .Rprofile.


0

Pada MacOS, saya memiliki hal yang persis sama dengan yang Anda katakan: Perintah 'tolong pilih' dan kemudian tidak lebih.

Setelah saya membuka (dan memperbarui; tidak tahu apakah itu relevan) X-Quartz, dan kemudian memulai kembali R dan mencoba lagi, saya mendapat daftar cermin X-window untuk dipilih setelah beberapa detik. Itu lebih cepat ketiga kalinya dan seterusnya.


0

Anda juga dapat menonaktifkan semua menu grafis dengan menjalankan ini atau menempatkannya di Rprofile Anda

options(menu.graphics = FALSE)

0

Tambahkan ke ~/.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
})
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.