如何在R中选择CRAN镜像


177

我正在尝试通过R提示符执行以下操作来安装软件包:

install.packages('RMySQL')

但是输出如下:

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

没别的!对于这个非常基本的问题,我找不到解决方案。我应该键入什么才能选择CRAN镜像?

编辑:

作业系统:Mac-OS X 10.6.8 R版本:2.15.0


1
它应该列出一个对应于镜像的1到100个核心的数字列表,尝试键入84并按Enter键
pyCthon 2012年

1
还添加您正在使用的操作系统以及R的哪个版本
pyCthon 2012年

1
应该弹出一个带有选择的窗口,或者应该在控制台中显示一个选择列表。您是否选择了一个单独的窗口进行选择?您如何运行R?
sayhey69

@pyCthon我键入了84,但未返回任何内容。
吉姆·约翰逊

@ sayhey69我只是通过从终端调用提示来运行R。我只要输入r,解释器就会出现。我从来没有弹出过任何单独的窗口来询问选择。
吉姆·约翰逊

Answers:


277

您应该获得一个带有存储库列表的窗口或一个带有某些选项的文本菜单。但是,如果没有出现,则始终可以使用repos参数指定从何处下载软件包的镜像。这样,R将不再询问您有关存储库的信息。例:

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

在这里,您有R 的镜像列表


1
对我来说,回购弹出窗口来了,我点击了镜子,然后什么也没有发生。同时,这很好。程序化解决方案>交互式解决方案,照常!谢谢!
MichaelChirico

以下是可供选择的一些镜子,以供您参考:cran.r-project.org/mirrors.html
滚刀

我发现这是将最新的软件包安装到MRO中的有用解决方法。我花了一天的时间尝试安装最新版本的软件包,但该checkpoint功能无法正常使用Anaconda的R v3.4.3发行版中所述,快照设置为2017-09-01。
史蒂文·豪威尔

93

这是我的工作,基本上直接从example(Startup)页面进行:

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

~/.Rprofile

编辑:由于现在是2018年,所以我们可以补充一点,在最近几年中,URL "https://cloud.r-project.org"更可取,因为它反映了a)https访问和b)“始终在您身边”的CDN。


3
我认为这应该是公认的答案。它在所有情况下都可以正常工作,包括在无头系统(服务器,物联网等)上。谢谢,德克。
杰西·阿德曼

4
几年后,我们现在有了一个合适的CDN,可以保证它与每个人的网络都近在咫尺,https因此我们现在使用它https://cloud.r-project.org作为URL。
德克·埃德比布特

希望您不要介意,德克,但我只是编辑了您的帖子以反映您的建议。
杰西·阿德曼

如果我想我本可以在四个小时前完成。我更愿意让历史记录说话。但由于破坏者会来,我把postscriptum英寸
德克Eddelbuettel

61

我是以下人群的粉丝:

chooseCRANmirror()

它将在输出中打印镜像列表(不必担心弹出窗口,因为您是从终端运行的),然后输入所需的编号。


1
糟糕,这样做chooseCRANmirror(81),它会提示您输入数字。全部在控制台中。
杰瑞德

1
注意:这似乎不会更新/etc/R/Rprofile.site或〜/ .Rprofile。(因此,选择已消失的备用旧镜像不是很好。最好直接编辑上述文件。)
Darren Cook

@DarrenCook您可能是对的,但是我发现很多人会被这些文件吓倒。我知道我曾经
杰里德(Jared)2013年

4
chooseCRANmirror(ind=81)这就是Jared可能的意思。它将绕过提示。
Casey Watson

1
可以设置options(menu.graphics = FALSE).Rprofile
安迪·巴伯

27

我使用了Dirk建议的〜/ .Rprofile解决方案,但我只是想指出一点

chooseCRANmirror(graphics=FALSE)

似乎是明智的选择

chooseCRANmirror(81)

,虽然可行,但涉及到神奇的数字81(或者这可能是将旅游业提升为81 = UK(Bristol):-)的巧妙方法)


13

由于OS X不再包含X11,因此无法在系统(OS X)上显示存储库选择屏幕。R尝试通过X11向您显示提示。从http://xquartz.macosforge.org/landing/安装X11 。然后运行安装命令。回购选择提示将显示。


1
这应该是公认的答案。关于OS X中X11支持的Apple支持文章位于support.apple.com/kb/HT5293?viewlocale=en_US&locale=en_US
JereKäpyaho2014年

问题可能是由于X11而没有显示该窗口,但可以说chooseCRANmirror()/ repos参数是更简单的解决方案。
Ben Mosher 2014年

4

如果您需要以非交互方式设置镜像(例如,在部署脚本中执行rbundler安装),则可以通过以下方式进行:

首先手动运行:

chooseCRANmirror()

选择最适合您的镜像编号并记住它。然后自动选择:

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

其中87是您要使用的镜像编号。此代码段还会为您安装rbundle。如果愿意,可以忽略它。


4

我用了

chooseCRANmirror(81)

它会提示您选择国家。然后,您可以通过键入在那里指定的国家/地区镜像代码来进行选择。


2

无论您是在终端中使用R还是在RStudio等IDE中使用,都应弹出一个下拉菜单供您选择(或者您将获得一堆数字供选择)。Windows,Mac OS和大多数Linux系统都支持此功能。但是,它可能需要其他配置或依赖性,例如X-windows。

要在使用远程访问时启用X-windows,请使用以下-XY标志:

ssh -XY username@server.domain

通常有一个默认存储库,但是如果您遇到任何问题(例如运行脚本或Rmarkdown / knitr),则可以指定此默认存储库。repo每次安装时,都可以将opset镜像或存储库用于CRAN:

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

建议使用离您最近的镜子以加快下载速度。例如:

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

您还repos可以在会话中设置该选项,因此每个交互式会话(或脚本)只需要一次。您可以检查是否repos配置了:

options(repos)

如果可以,"Error in options(repos) : object 'repos' not found"则可以设置存储库选项。例如:

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

然后,应该像往常一样安装软件包。例如:

install.packages("RMySQL")

正如其他人所提到的,您可以在.Rprofile文件中配置存储库,并在所有脚本中进行这项工作。由您决定是选择系统上的“全局”选项还是会话或脚本中的“本地”选项。这些“本地”选项花费更多的时间来使用每个会话,但是如果其他人没有您的脚本,它们的好处就是可以使其他人使用您的脚本.Rprofile


0

在macOS上,我有您所说的确切内容:“请选择”提示,然后仅此而已。

打开(并更新;不知道是否相关)X-Quartz,然后重新启动R并再次尝试后,几秒钟后,我得到了X窗口的镜像列表。第三次以后更快。


0

您也可以通过运行此菜单或将其放置在Rprofile中来禁用所有图形菜单

options(menu.graphics = FALSE)

0

加入 ~/.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
})
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.