我對R編程頗爲陌生。我正在嘗試自定義R安裝程序,以便在啓動R會話時在開始時安裝一些軟件包。我知道我可以在Rprofile.site文件中編寫一個.First()函數。但是,在.First()函數中添加我的安裝包代碼後,該包不會被安裝。啓動R會話時安裝軟件包
此外,它似乎進入一個嘗試創建軟件包的循環,它會在R的庫文件夾中創建一個鎖文件。這會導致我的計算機真的變慢(幾乎到了被凍結的地步)因爲它一直試圖安裝該軟件包。
這裏是我已經添加到Rprofile.site文件末尾的代碼。
.First <- function() {
install.packages("customPackage.tar.gz", repos=NULL, type="source")
cat("\nWelcome to R on ", date(), "\n")
}
我甚至試圖在文件中添加install.packages線只是通過本身(不具有。首先()函數)無濟於事。
的customPackage.tar.gz指包我建立了使用,我已經寫了現有的代碼。由於這是一個自定義包,因此回購爲空。如果我在.First()函數中沒有包含這一行,並且在啓動R會話後只運行該命令,那麼該軟件包會在R/R-2.15.0/library文件夾中正確安裝。
有我需要在R對話開始時已經安裝了幾個定製的軟件包,這就是爲什麼它是重要的是我添加的代碼,所有這些安裝線路中的Rprofile.site文件。關於如何做到這一點的任何想法?我在網上查到的有關自定義Rprofile.site文件的內容顯示了僅使用已存在的庫(例如庫(R2HTML))的示例,但沒有用於安裝新庫的示例。謝謝您的幫助!
編輯:謝謝你們的幫助!實際上,我確實需要爲每個用戶在多臺機器上安裝這些軟件包,而不是讓他們手動安裝一次軟件包,我認爲在站點文件中這樣做會很好。我嘗試了Justin的建議,首先檢查包並且工作正常!再次感謝您的幫助!
如果你有他們在你的圖書館爲什麼每次都安裝它們。運行install.packages時,只需使用'library(name_of_custom_package)' –
,它將重新啓動R ...並重新運行您的.First函數。首先添加一個包:if(length(grep('customPackage',installed.packages()))== 0)install.packages(...)'。 – Justin
安裝包後,您需要加載它。嘗試在'install.packages'之後添加'require(「customPackage」)''。此外,您只需安裝一次軟件包,而不是每次安裝一次。在Rprofile.site文件中包含'install.packages'是很少見的。 – jthetzel