R - install.packages 在 knitr 文档中失败:"trying to use CRAN without setting a mirror"



使用以下代码,我得到了我想要的数据,但由于某些原因,我无法计算出knitr不允许我编译PDF文档,如下所示:

我的代码:

install.packages("weatherData")
library(weatherData)
istanbul <- getWeatherForDate("Istanbul",
                              start_date = Sys.Date() - 41, 
                              end_date = Sys.Date())

工作没有问题,但我收到以下消息,试图编译PDF:

Quitting from lines 3-31 (ist_weather.spin.Rmd) 
Error in contrib.url(repos, type) : 
  trying to use CRAN without setting a mirror
Calls: <Anonymous> ... eval -> eval -> install.packages -> grep -> contrib.url
Execution halted

Knitr生成一个R会话,除非您特别要求,否则没有默认的cran镜像。当我们使用Rstudio时,我们往往忘记了我们需要为每个R会话设置CRAN,因为它会处理它,但只用于交互式使用,而不用于编织者。

您可以尝试将镜像指定为install.packages参数:

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

或者,您可以在.Rprofile中设置默认的CRAN镜像。看看这个答案。

也就是说,通过您可能会编译多次的knifer文档安装包不是一个好主意。如果需要,你应该假设人们知道如何安装丢失的软件包,或者至少在再次安装之前测试软件包是否已安装

if(!require(weatherData)) install.packages("weatherData",repos = "http://cran.us.r-project.org")

您必须在R中设置CRAN存储库。为此,请启动R或RStudio。在R端子中运行以下代码。

r = getOption("repos")
r["CRAN"] = "http://cran.us.r-project.org"
options(repos = r)
install.packages("weatherData")

上面的代码在R中定义了CRAN存储库,在下一个软件包安装中无需再次定义。

另一种方法是简单地运行install.packages("weatherData", repos="http://cran.us.r-project.org")。但是,对于第二个解决方案,存储库没有设置,您必须在每次安装软件包时将其作为参数传递。

老实说,

它对我来说不起作用,因为我安装了程序包,而这些代码行中断了针织功能。当我删除了所有包含安装包的行(并使用了最新的R和R Markdown)时,这个错误就消失了。

相关内容

最新更新