2017-06-01 54 views
2

問:一個人如何寫的R包功能引用的R包數據集的方式,是簡單/友好/高效有關R用戶。例如,如何處理從包中調用adatasetafunction()應該在函數之前還是之內加載數據集?

我覺得可能不是簡單/友好/高效: 用戶需要運行 afunction(...) 或者接收Error: ... object 'adataset' not found之前運行 data(adataset)。我注意到一些軟件包內置了可在程序包加載時隨時調用的數據集,例如,iris,無需將其引入全局環境即可調用該數據集。

我已受理可能的選項:

  1. data(NamedDataSet)直接進入功能。這是一個壞主意。我想也許它可能是,看着記憶,並給我對功能環境的限制性理解。

  2. 直接將數據集的結構編碼到函數中。我認爲這取決於數據的大小,但它使我想知道如何去包裝中的適當文件。

  3. 沒有改變。給定一個足夠大的數據集,也許在調用函數之前實現與讀取它不同的方法是沒有意義的。

任何意見都表示讚賞。

回答

3

您可能會發現這些資源如何編寫R數據包有用:

特別是採取DESCRIPTION文件和使用的的音符行LazyData: true。這就是數據集如何在不必使用data()的情況下提供的,例如您提到的iris示例。

+0

第一個鏈接的「內部數據」部分很可能給出了答案。將數據保存到'R/sysdata.rda'中(或者使用'devtools :: use_data(...,internal = TRUE)'讓devtools爲你做這件事)。 – Axeman

相關問題