2012-11-28 20 views
5

我有幾個RStudio項目,我已經設置了自動化任務,如分級選擇題測試。執行這些任務所需的功能只是保存在一個文本文件中,爲了確保它們可供我或其他用戶使用,我一直在使用.Rprofile文件,該文件在啓動時只運行諸如source("MyFunctions.R")之類的文件。如果一個.Rprofile文件位於RStudio項目的基本目錄中,它在打開項目時自動運行確保在運行之前加載所有默認軟件包.Rprofile

但是,我遇到了偶爾的錯誤,其中在基本R包提供的功能未在腳本之前加載源,功能類似於read.csvinstalled.packages,如:

Error in eval(expr, envir, enclos) : 
    could not find function "installed.packages" 

是否有某種方式來等待默認包source()之前運行,而不是添加的是無法加載所有默認包明確library()調用加載?

回答

6

這一點,從?Startup似乎很明確:

注意,當網站和用戶配置文件都被唯一 「基地」包被加載,所以在其他包對象需要 被稱爲通過例如'utils :: dump.frames'或明確加載相關軟件包後 。

基於這個明確的建議,使用library()加載必要的包看起來像是你最好的選擇。

+0

謝謝,它看起來我應該重新考慮使用'.Rprofile'這些東西。我一直認爲它是一種快速便捷的方式來自動加載函數和運行腳本,而且它看起來並不像這樣。 – Marius

+0

如果你還沒有看到它,你可能會對這個SO [r] -tag經典感興趣:http://stackoverflow.com/questions/1189759/expert-r-users-whats-in-your-rprofile –

1

已指出對由Josh的答案?Startup文檔,它看起來像在.Rprofile頂部添加.First.sys()呼叫可能是一種選擇,因爲這似乎是處理所有默認包加載功能。它通常運行後.Rprofile,這將解釋我得到的錯誤。

相關問題