Есть ли предопределенное место, где R-пакет может хранить кэшированные данные? Данные должны сохраняться в течение сеансов. Я думал о создании подкаталога ${R_LIBS_USER}/package_name, но я не уверен, что он переносимый, и если это "разрешено", если мой пакет установлен в системе.
Идея следующая: Создайте R script mydata.R в подкаталоге data пакета, который будет выполнен, вызвав data(mydata) (согласно документации data()). Этот script будет загружать данные из Интернета и кэшировать его, если он ранее не кэшировался. (Если данные уже кэшированы, кэш будет использоваться.) Кроме того, будет предоставлена функция для недействительности кеша и/или проверки доступности новой версии данных в Интернете.
Это из документации data():
В настоящее время поддерживаются четыре формата файлов данных:
файлы, заканчивающиеся на .R или '.r, являются source() d in, а рабочий каталог R временно изменен в каталог, содержащий соответствующий файл. (данные гарантируют, что пакет utils подключен, если он был запущен через utils:: data.)
...
В самом деле, создав файл fortytwo.R в подкаталоге data пакета со следующим содержимым:
fortytwo = data.frame(answer=42)
а затем выполнение data(fortytwo) создает переменную фрейма данных fortytwo. Теперь возникает вопрос: где бы fortytwo.R кэшировать данные, если их было сложно вычислить?
EDIT. Я думаю о создании двух пакетов: "пакет данных", который предоставляет данные, и пакет "code", который работает на нем. Вопрос касается пакета данных: где он может хранить файлы в хранилище для каждого пользователя, чтобы он был постоянным в R-сессиях и доступен из разных R-проектов?
Связанный: Пакет, который загружает данные из Интернета во время установки.