我必須創建一個非常簡單的R包,其中包含使用RStudio的函數。 我想把它給一些學生。加載R包時自動運行函數
當我的包被加載時,我希望它自動啓動我的功能,而不需要用戶鍵入它的名稱。 (該功能等待用戶輸入或可能打開簡單的GUI)
我該如何得到它?
PD:我無法修改其他人的.Rprofile,這就是爲什麼我需要一種方法來加載包時自動加載函數。
我必須創建一個非常簡單的R包,其中包含使用RStudio的函數。 我想把它給一些學生。加載R包時自動運行函數
當我的包被加載時,我希望它自動啓動我的功能,而不需要用戶鍵入它的名稱。 (該功能等待用戶輸入或可能打開簡單的GUI)
我該如何得到它?
PD:我無法修改其他人的.Rprofile,這就是爲什麼我需要一種方法來加載包時自動加載函數。
如果你希望當R開始運行的東西:
開始RStudio,並運行以下在你的家目錄下創建.Rprofile
文件:
file.edit("~/.Rprofile")
把下面的函數文件中:
.First <- function(){
cat("Hello!") # startup message
require(data.table)
# or whatever packages you want to load
# or if you want to run a function in a file
if(file.exists("~/myfile.r")){
source("~/myfile.r")
myfunc()
}
}
保存。完成!
至於OP的編輯
在你想要加載時,您的包運行的東西時,你可以使用.onLoad
和.onAttach
功能。例如:
.onAttach <- function(libname, pkgname) {
# to show a startup message
packageStartupMessage("This is my package, enjoy it!")
}
.onLoad <- function(libname, pkgname) {
# something to run
}
查看'?Startup'。我想你會想創建一個Rprofile來加載這個包,你可能會發現定義函數'.First'來運行你的函數是實現你的第二個目標的最好方法。如何做到這一點的具體細節取決於系統,但您應該在幫助頁面上找到所需的所有信息。 –
可能重複[如何在R中自動加載包?](http://stackoverflow.com/questions/10300769/how-to-load-packages-in-r-automatically) –
*自動啓動我的功能*意思? –