[英]How to load packages in R automatically?
你能給我建議一種在 R 中自動加載包的方法嗎? 我的意思是,我想在 R 中啟動一個會話而無需多次使用library('package name')
。 假設我下載了下次啟動 R 時要使用的所有軟件包。
將library(foo)
放在您的.Rprofile
文件中或設置R_DEFAULT_PACKAGES
:參見?Rprofile
...
特別是(因為?Rprofile
很長並且可能令人生畏):
如果您在啟動時需要一組不同於默認軟件包的軟件包,請在“.Rprofile”或“Rprofile.site”文件中插入對“options”的調用。 例如,'options(defaultPackages = character())' 不會在啟動時附加額外的包(只有 'base' 包)(或在運行 R 之前將 'R_DEFAULT_PACKAGES=NULL' 設置為環境變量)。 使用 'options(defaultPackages = "")' 或 'R_DEFAULT_PACKAGES=""' 強制 R系統默認值。
由於您可能確實希望加載所有默認包,然后再加載額外的包(而不是不加載某些默認包),因此您可以將
library("mypackage1")
library("mypackage2")
[etc.]
或使用options(defaultPackages=...)
:
options(defaultPackages=c(getOption("defaultPackages"),
"mypackage1","mypackage2", ... [etc.]))
在您的.Rprofile
,將您想要的包附加到標准默認值中。
編輯(從評論中復制)重新讓它在Rstudio 中工作: http ://rstudio.org/docs/using/workspaces 建議 Rstudio 執行.Rprofile
然后“執行 R Startup [ http://stat .ethz.ch/R-manual/R-patched/library/base/html/Startup.html ]”(與?Rprofile
相同)。 它是否查看Rprofile.site
是不明確的。
編輯 #2 :根據下面的評論,它確實適用於 Rstudio 的最新版本。
有一個名為 .Rprofile 的文件,它只不過是一個腳本,每次啟動 R 的新會話時都會運行該腳本。
您需要做的是向其中添加library(package)
。 如果您使用的是 Unix,它可能作為隱藏文件位於您的主文件夾中。
關於自定義 R 啟動的 Quick-R 頁面包含的信息與 Ben 和 Joao 的答案基本相同,但可能更清晰一些。 在您的主文件夾(Windows 上的文檔)中創建具有所需更改的Rprofile.site
文件的副本,並將其.Rprofile
編輯:我注意到 R 3.0.0 不再從 Documents 文件夾中查看,而是在 Windows 7 下使用用戶的主目錄(用戶名)。不過,這可能是一個安裝問題(即我碰巧“錯誤地”安裝了 R之前)。 但是,此答案中鏈接的 Quick-R 頁面說明了正確的方法。 如果其他人遇到此問題,解決方案是將.Rprofile
復制到用戶的主目錄。
快速回答是您應該按照每個人的建議將 R 包放在.Rprofile
文件中。
但請注意,R 將讀取此文件,然后加載 R 基礎包。 從?Startup 看:
請注意,當獲取站點和用戶配置文件時,僅加載基本包,
如果您要加載的包增強/覆蓋某些 R 基本函數,這可能會導致問題。 以 tidyverse::filter 為例,請參見: https : //github.com/tidyverse/dplyr/issues/1611
到目前為止,我可以看到兩種解決方案:
在.Rprofile
文件的第一行使用.First.sys()
:這是通常在讀取 .Rprofile 后運行的命令,它在getOption("defaultPackages")
中加載包。
更新選項defaultPackages :不要在 .Rprofile 中使用library()
,而是使用類似的東西。
old <- getOption("defaultPackages") options(defaultPackages = c(old, "tidyverse"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.