【问题标题】:Package error when running r code on command line在命令行上运行 r 代码时出现包错误
【发布时间】:2013-07-16 07:43:06
【问题描述】:

我运行的一些代码包括这部分:

if (!require("yaml")) {
  install.packages("yaml") 
  library("yaml")
}

当我在 rstudio 中运行时,一切都无缝运行,没有错误。但是,当我尝试在命令行上运行我的代码时,我得到了这个错误:

$ Rscript.exe file.R
Loading required package: yaml
Installing package(s) into ‘/usr/lib/R/site-library’
(as ‘lib’ is unspecified)
Error in contrib.url(repos, type) :
  trying to use CRAN without setting a mirror
Calls: install.packages -> grep -> contrib.url
In addition: Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘yaml’
Execution halted

【问题讨论】:

  • 阅读此内容:trying to use CRAN without setting a mirror,尤其是repos install.packages 中的参数。

标签: r rstudio


【解决方案1】:

当您从 RStudio 中调用 install.packages 时,RStudio 会设置默认存储库。当您通过命令行运行脚本时,您必须告诉 R 要使用哪个存储库(或设置全局默认存储库)。

您可以通过告诉 R 使用您最喜欢的存储库来轻松解决此问题。

例如,如果您想使用 RStudio 的包存储库,请在 install.packages 调用中设置 repos="http://cran.rstudio.com/"

if (!require("yaml")) {
  install.packages("yaml", repos="http://cran.rstudio.com/") 
  library("yaml")
}

这应该可行!

【讨论】:

  • 这给了我错误:Loading required package: yaml Error in file(con, "r") : cannot open the connection Execution halted
  • 你知道这个包有没有安装吗?您的脚本中有其他代码吗?您是否尝试过编写测试脚本,例如 test.R 仅使用 library("yaml") 行来查看包是否正确加载?
  • 出于某种原因,我认为该错误与同一问题有关。事实证明,我之前使用了一个抑制警告包装器,它隐藏了真正的问题。
猜你喜欢
  • 2020-09-27
  • 1970-01-01
  • 2012-06-16
  • 2015-08-02
  • 2019-09-08
  • 2013-11-15
  • 1970-01-01
  • 2021-01-08
  • 1970-01-01
相关资源
最近更新 更多