Package 在 knitr 文档中失败: “尝试在不设置镜像的情况下使用 CRAN”

使用下面的代码,我得到了我想要的数据,但是由于某些原因,我不知道 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
119525 次浏览

Knitr 生成一个 R 会话,没有默认的 cran 镜像,除非您特别要求一个。当我们使用 RStudio 时,我们往往会忘记我们需要为每个 R 会话设置 CRAN,因为它负责它,但只是为了交互式使用,而不是为了针织。

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

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

或者,您可以在 .Rprofile中设置默认的 CRAN 镜像。

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

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)时,这个错误就消失了。