我想在R中創建一個包,其中我創建了很多新的自定義類。每個班級都在不同的文件中。類從父類繼承並繼承到其他類。鏈接多個文件,同時在R中創建一個包
在運行我的代碼我叫他們每個人喜歡這個
source("package/father.R")
source("package/son.R")
source("package/grandson.R")
對於一些通過在子類中定義的孫子類所需的方法定義。我使用package.skeleton()來調用它們並創建一個包,它似乎工作正常。但是當運行R CMD Check(以及試圖安裝到R時)時,它會拋出一個錯誤,因爲該函數試圖按字母順序調用文件,所以文件grandson.R在son.R之前調用,它顯示並顯示錯誤該方法尚未定義。如果我將名稱更改爲zgrandson.R,R將該文件稱爲最後一個,並且一切看起來都很好,但這顯然不是問題的解決方案。
我已經閱讀了關於創建包的教程,但是他們都似乎處理了R中沒有繼承/調用其他文件的簡單情況。希望我已經說清楚了。
第一篇文章很不錯。 –
「如果我將名稱更改爲zgrandson.R,R將該文件稱爲最後一個文件,並且所有內容似乎都可以正常工作,但顯然這不是解決問題的辦法。」爲什麼?這正是我使用的解決方案以及其他許多方法(以'00Classes.R'開始第一個腳本)。 –
這工作正常,但看起來像這樣一個醜陋/ hackish方式來解決問題:D。感謝您告訴我其他人也在使用此解決方法。雖然我不知道這個問題是否與我的代碼結構本身有關,因爲我經歷過的好程序員的腳本似乎都沒有調用其他文件。 –