簡體   English   中英

"install.packages 在 knitr 文檔中失敗:“嘗試使用 CRAN 而不設置鏡像”"

[英]install.packages fails in knitr document: "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,因為它會處理它,但僅用於交互式使用,而不用於 knitr。

您可以嘗試將鏡像指定為install.packages參數:

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

或者,您可以在.Rprofile設置默認的 CRAN 鏡像。 看到這個答案

也就是說,通過您可能會多次編譯的 knitr 文檔安裝軟件包並不是一個好主意 如果需要,您應該假設人們知道如何安裝丟失的軟件包,或者至少在再次安裝之前測試該軟件包是否已安裝

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") 但是,在第二種解決方案中,未設置存儲庫,您必須在每個軟件包安裝中將其作為參數傳遞。

誠實地,

它對我不起作用,因為我安裝了軟件包,而這些代碼行中斷了 knit 功能。 當我刪除所有包含安裝包的行(並使用最新的 R 和 R Markdown 可用)時,此錯誤消失了。

Ramin Ar 的解決方案對我有用。

基本上,將包安裝在 R 控制台中,而不是 R 降價。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM