Как загрузить данные для моего пакета по запросу? - PullRequest
0 голосов
/ 26 сентября 2019

Я являюсь автором пакета R, который реализует загрузчики файлов и отправляет файлы примеров, которые используются в модульных тестах и ​​в примерах, например, если вы запускаете example(func_from_mypackage) в GNU R.

Я былсотрудники CRAN попросили «загрузить данные пакета по требованию» и разместить их на каком-либо внешнем сервере, поскольку они превышают ограничение размера пакета в 5 МБ.Есть ли стандартный способ сделать это?

Моя идея на данный момент: я мог бы создать функцию dl_data_if_not_available() и вызывать ее как первое, что есть в каждом примере.Но куда мне загрузить данные?Например, было бы приемлемо загрузить что-то вроде $HOME/.mypackage/data/?

Я бы предпочел, чтобы к данным можно было обращаться, как к данным пакета, например:

some_file = system.file("extdata", "some_file.dta", package = "mypackage", mustWork = TRUE);

Но есть ли способ загрузить в это место (данные пакета)dir моей посылки)?

РЕДАКТИРОВАТЬ: Чтобы было ясно: я не хочу, чтобы пользователь каждый раз загружал данные во временное местоположение.Я хочу, чтобы данные были загружены один раз, а затем сохранены.Данные часто нужны, и они не меняются.

ОБНОВЛЕНИЕ: Я нашел пакет BiocFileCache для BioConductor, и он, кажется, делает то, что мне нужно - но для биокондуктора, а не для CRAN.Я не нашел что-то подобное для CRAN еще.Может быть, я просто удалю свою посылку в CRAN и перейду в bioconductor, или оставлю обе и попросу людей devtools::install_github() вместо моей посылки.

1 Ответ

0 голосов
/ 26 сентября 2019

Если он не должен быть включен в пакет и позднее использован с вызовом data(), то, возможно, подходящим местом для загрузки данных может быть место, указанное с помощью temp().

Указывает на временную папку текущего сеанса R и будет удален вместе с сеансом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...