Поместите файл sysdata.rda
в каталог data
вашего пакета.
Не используйте Lazy Data - в вашем файле DESCRIPTION не должно быть строки для LazyData или, если она есть,это должно быть LazyData: no
В любом файле .R в каталоге R вашего пакета добавьте строку, подобную этой
data(sysdata, envir=environment())
Я создал data.frame
с именем sysdata
и сохранилэто к файлу с именем sysdata.rda
в каталоге данных пакета с именем anRpackage
Я добавил указанную выше строку в файл .R, а также добавил эту неэкспортированную функцию, просто чтобы показать, что функции в пакетеиметь доступ к данным.
foo <- function() tail(sysdata, 2)
Затем я вижу следующую сессию R
> library(anRpackage)
> sysdata
Error: object 'sysdata' not found
> anRpackage:::sysdata
A B C
1 1 6 a
2 2 7 b
3 3 8 c
4 4 9 d
5 5 10 e
> anRpackage:::foo()
A B C
4 4 9 d
5 5 10 e
Итак, пользователи по-прежнему имеют доступ к данным, но, как вы и просили, они не имеютиметь прямой доступ.У пользователя все еще есть возможность запустить data(sysdata)
.