簡體   English   中英

避免被要求提供 CRAN 鏡像?

[英]Avoid being asked for CRAN mirror?

從終端運行 R 時,我們有時會看到

--- Please select a CRAN mirror for use in this session ---

是否有一種通用、高效且令人難忘的方式來install.packages("example")而無需記住 url 或與對話框交互?

也就是說,有沒有辦法安裝 R package 這是:

  1. 通用(適用於 R 的任何/所有安裝,與操作系統無關)
  2. 無需記憶網址
  3. 不需要與雙語盒交互
  4. 不需要創建或編輯文件(例如.Rprofile

最后,理想情況下,一種簡短且令人難忘的方法(或無需查找即可輕松使用)。

這是一個理想解決方案的偽代碼示例(其中'force'是'選擇最明顯的默認值並不惜一切代價按下'的偽代碼!)

force(install.packages("example"))

如果您運行help("install.packages") ,您可以看到存儲庫的默認值為repos = getOption("repos") 如果您按照這條線索找到help("getOption") ,它會提供更多見解。 這是repos選項的內容。

回購:

update.packages 使用的存儲庫的 URL。 默認為 c(CRAN="@CRAN@"),該值會導致某些實用程序提示輸入 CRAN 鏡像。 為避免這種情況,請設置 CRAN 鏡像,例如 local({r <- getOption("repos"); r["CRAN"] <- "http://my.local.cran"; options(repos = r )})。

您可以通過進入 R 安裝的“etc/”子目錄看到這一點。 那里有一個名為“存儲庫”的文件。 雖然其他一些存儲庫(例如,R-Forge)具有默認 URL,但 CRAN 沒有。 它顯示了幫助文件引用的@CRAN@

R 文檔建議您某些實用程序(例如您在命令行中遇到的)會提示您輸入鏡像,除非明確設置了該選項。 該文檔並未指示替代解決方法。

之所以不能有一個 function 告訴它使用“最明顯的默認值”,是因為實際上沒有默認值。 所以像你假設的force()這樣的方法是不可能的。


包含更多信息的編輯

您可以使用utils中的一些幫助程序來設置repos選項。 我不確定您的標准是否容易記住,但有chooseCRANmirror()getCRANmirrors()

# this should work
chooseCRANmirror(ind = 1)
install.packages("example")

# or this clunky approach
install.packages("example", repos = getCRANmirrors()[1,"URL"])

但老實說,你最好記住repos = https://cloud.r-project.org/

暫無
暫無

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

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