2016-11-25 29 views
3

我花了很多時間尋找可能是一個非常基本的問題的答案,但我無法找到解決我的問題的方法。我發現最接近的是幾年前的this exchange自動從sysdata.rda中加載數據包

在這種情況下,這個問題是在包內的正確目錄sysdata.rda文件的位置。這不是我的問題。

我有一些變量存儲的東西,比如我在包裏面使用的調色板。這些變量只用於我的函數中,所以我將它們存儲在R/sysdata.rda中。但是,當我加載包時,變量不會加載到包環境中。如果我從sysdata.rda手動加載數據,那麼一切工作正常。

我從閱讀的一切,我能找到的R程序包內的數據是,在R/sysdata.rda的數據會自動加載的印象。

這裏是我用來存儲我的數據的代碼。

devtools::use_data(tmpBrks, tmpColors, prcpBrks, prcpChgBrks, 
        prcpChgBrkLabels, prcpColors, prcpChgColors, 
        internal = TRUE, overwrite = TRUE) 

即在R/sysdata.rda成功地創建了數據文件和數據是在該文件中,當我手動加載它。

我需要做些什麼來自動加載數據,以便我的包中的函數可以使用它們?

回答

4

像往常一樣,這是用戶無知和糟糕的R文檔的糟糕組合。數據被加載並且可用於該功能。我錯誤的地方是假定數據在包裝環境中可見。事實並非如此。

據我所知,R \ sysdata.rda文件中的內部數據可用於包內的函數,但不能以任何方式顯示。在創建內部數據文件後,我正在查找包環境中的數據。當我沒有看到它時,我認爲它沒有加載。當我繼續推進我的軟件包開發時,我終於意識到數據正在默默加載,並且可以訪問軟件包中的函數。

正如我的問題得到的兩票贊成票所證明的,我不是唯一一個不理解R \ sysdata.rda內部數據行爲的人。希望這個解釋能夠幫助別人解決這個問題的答案,而這個答案實際上並不存在。

+0

現在有一些關於http://r-pkgs.had.co.nz/data.html的很好的文檔,但並沒有說明它是自動加載的,所以你的文章幫助了我,謝謝。 –