要回答,我必須給出一些背景。
出於可重現性的目的,我嘗試編寫腳本,包括我的整個R設置。我有一個腳本「initializeR.r」,其中包括安裝軟件包,並且我已經安裝了軟件包,比如與緩存有關的軟件包,與可視化,採樣,空間統計等相關的軟件包 - 我自己的小軟件任務視圖,如果你願意的話。
舉例來說,這裏是一個片段:
# Profiling & testing
Packages$CodingTools = c("codetools","debug", "profr","proftools","RUnit")
我結合一些束變成了「大」包(或主要)列表和其他人進入「輔助」列表中。我一定要在主列表上安裝所有東西 - 這些都需要有一個合理的R環境,使用我自己的腳本,函數和包等。(順便說一下,一些包被分配到多個包,但只有少數;我在處理彙總列表之前進行了重複處理。)
然後,我指定一個特定於平臺的默認庫,然後安裝到那裏。然而,這種能力是可擴展的,並且這個想法可以擴展到包括每個包捆綁包(或包)的可選位置:只從包名稱映射,例如, 「CodingTools」轉換爲唯一的目錄(庫路徑),例如「D:/ R/Library/CodingTools」。這可以在初始化腳本中完成,默認選項爲匹配列表&,或者位置可以存儲在別處,例如散列表,JSON或數據庫。
正如其他人所說的,默認庫路徑需要傳遞給R.這可以在.RProfile.site中完成。在我的情況下,我有另一個腳本用於根據需要初始化R實例。我嘗試避免由R讀取的外部參數文件(例如.Rprofile),而是通過函數調用在我自己的包中進行所有初始化(儘管參數仍然是外部的)。這往往會使我更容易調試和重現我的工作。所以,我的庫路徑可以包含在指定數據文件位置的同一種JSON中。
個人而言,我想遠離定義腳本內的包,而是使用JSON,因爲我可以更輕鬆地爲不同的安裝配置創建不同的JSON文件。我已經爲了大多數其他重複性工作目的而做到這一點。
這裏是[一個相關的和有用的問答](http://stackoverflow.com/questions/2988559/how-do-you-use-multiple-versions-of-the-same-r-package)。 – Iterator