2016-06-14 28 views
2

我必須創建一個非常簡單的R包,其中包含使用RStudio的函數。 我想把它給一些學生。加載R包時自動運行函數

當我的包被加載時,我希望它自動啓動我的功能,而不需要用戶鍵入它的名稱。 (該功能等待用戶輸入或可能打開簡單的GUI)

我該如何得到它?

PD:我無法修改其他人的.Rprofile,這就是爲什麼我需要一種方法來加載包時自動加載函數。

+0

查看'?Startup'。我想你會想創建一個Rprofile來加載這個包,你可能會發現定義函數'.First'來運行你的函數是實現你的第二個目標的最好方法。如何做到這一點的具體細節取決於系統,但您應該在幫助頁面上找到所需的所有信息。 –

+1

可能重複[如何在R中自動加載包?](http://stackoverflow.com/questions/10300769/how-to-load-packages-in-r-automatically) –

+1

*自動啓動我的功能*意思? –

回答

2

如果你希望當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 
} 
+0

好的,謝謝,我會嘗試 – skan

+2

嗯,在哪個文件中放置它們? – untill