使用以下代码我得到了我想要的数据,但由于某种原因我无法弄清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
答案 0 :(得分:55)
Knitr会产生一个R会话,没有默认的镜像,除非您特别要求。我们倾向于忘记在使用Rstudio时我们需要为每个R会话设置CRAN,因为它会处理它,但仅用于交互式使用,而不是针对knitr。
您可以尝试将镜像指定为install.packages
参数:
install.packages("weatherData",repos = "http://cran.us.r-project.org")
或者,您可以在.Rprofile
中设置默认的CRAN镜像。请参阅this answer。
那就是说,通过编辑文档安装软件包并不是一个好主意,你可能会多次编译。如果需要,您应该让人们知道如何安装缺少的软件包,或至少在再次安装软件包之前测试软件包是否已安装
if(!require(weatherData)) install.packages("weatherData",repos = "http://cran.us.r-project.org")
答案 1 :(得分:4)
您必须在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")
。但是,在第二种解决方案中,未设置存储库,因此您必须在每次安装软件包时将其作为参数传递。
答案 2 :(得分:0)
老实说
它对我不起作用,因为我安装了软件包,而这些代码行中断了 knit 功能。当我删除包含安装包的所有行(并使用可用的最新 R 和 R Markdown)时,此错误消失了。