Error in contrib.url(repos, "source") in R trying to use CRAN without setting a mirror Calls: install.packages -> contrib.url Execution halted

时间:2019-03-19 15:09:22

标签: r package

I have some R code that executes perfectly in RStudio, but when I run it in cmd I get the below error .

Installing package into 'C:/Users/Anish/Documents/R/win-library/3.5'
(as 'lib' is unspecified)
Error in contrib.url(repos, "source") :
  trying to use CRAN without setting a mirror
Calls: install.packages -> contrib.url
Execution halted

I am including my package in my code as install.packages("plyr"). I have also tried using repos and source inside install.package function.

2 个答案:

答案 0 :(得分:0)

原因很可能是因为 RStudio 配置了 R,因此它知道如何检查系统包以及在本地不可用的情况下从哪里下载它们,而从命令行中,您的 R 可能缺少该配置。从命令行检查 R.home(component = "home")。在返回的文件夹中查找类似 Rprofile 的文件。在我的系统中,该行被注释(视线):

$ grep -i "options(repos" /usr/lib64/R/library/base/R/Rprofile
# options(repos = c(CRAN="@CRAN@"))

在与我最初编写的计算机不同的计算机上重新运行 R markdown 文档时,我遇到了同样的错误。为了修复它,我在文档的第一个 R 卡盘中明确设置了 repos 选项,然后 knitr 开始工作而不是陷入这个错误。该错误意味着您的 R 会话正在尝试使用 contrib.url 包安装包,但 R 语言选项没有告诉它从哪里获取包。

这是我在 Rmd 文档的第一个 R 块中引入的行。我从https://github.com/eddelbuettel/littler/issues/23那里得到了这个想法。

options(repos = list(CRAN="http://cran.rstudio.com/"))

无论如何,这将使您在命令行中的行为与 RStudio 环境中的包下载更接近。

我建议在您正在运行的脚本顶部设置该选项。当然,最佳做法是根据您的期望配置 R 语言,并通过 R.profile 文件与您的受众用户共享该配置,请阅读 how to customize R

答案 1 :(得分:-1)

使用

    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }