在一個使用R的長期項目中,我有一組約50個函數,我定義了我一直使用的函數和另外10或15個函數等一下。這些大部分都不是我直接使用的功能;他們是我用來直接定義我使用的幫助函數。當我從R數據文件加載數據對象時,我並不總是記得我命名的對象,所以我執行ls()
來查看我加載的內容。但是,如果我已經加載了我的源代碼文件,那麼我必須通過可視化的方式篩選輸出以精確處理數據對象,這顯然很不方便。簡單的方法來列出我的數據,但不是我的函數在R? (隱藏函數ls()?)
所以我把函數包裝到一個R包中。如果我只是加載包,那麼一切都很好。我可以使用這些功能,但ls()
只顯示數據對象。
但是,我不斷添加新的功能。而且我發現重新制作軟件包並不是一件簡單的事情,所以最終我總是從源文件中加載函數 - 直到我重新開始製作軟件包。
我當然可以比我更自動地執行包構建過程,或者將我的新功能拆分爲單獨的源文件。我也可以將這些功能分成不同的包 - 也許這會有所幫助。我想我只能通過閉包直接調用幫助函數 - 我沒有嘗試過 - 但是如果我想這樣做,我不能直接使用幫助程序,而且看起來像如果有一種更簡單的方法,那就是過度殺傷力。這就是我想知道的:是否有一個簡單的技巧,我錯過了 - 一種使功能可供使用的方式,但可以很容易地告訴我什麼數據對象,我沒有列出的功能。如果沒有,好的,但我認爲這值得提問。謝謝。
這些問題: hiding personal functions in r和 remove all variables except functions 提供非常有用的答案。什麼是完成上述內容的最簡單的方法?
RStudio顯示以數據,值和函數組織的工作空間。如果你還沒有這樣做,你應該試試看。使用IDE還有許多其他好處。 – Roland
我在猜測,既然你不認爲'重新制作'這個軟件包是微不足道的,你沒有使用devtools軟件包。它使得修改軟件包,測試它們並重新安裝軟件包變得非常簡單。 – Dason
即使沒有devtools,「重製」一個包也不難。 –