Я хотел бы включить "конфигурационный" файл в создаваемый мной R-пакет. Однако я хотел бы добиться, чтобы файл загружался в память каждый раз при загрузке пакета и чтобы он был доступен в папке установки пакета, доступной пользователям для изменения по запросу.
Например, если пользователь этого пакета хочет изменить файл конфигурации, он может просто найти его в своем каталоге «библиотека / пакет», внести необходимые изменения, перезагрузить пакет и увидеть результаты своего изменения.
Я реализовал следующее решение. Добавление файла конфигурации в inst / extdata и его чтение с помощью read.csv и присвоение его глобальной переменной как часть функции .onLoad. В этом случае пользователи пакета смогут применить изменения без перекомпоновки пакета.
Вот что у меня в файле zzz.R:
.onLoad <- function(libname, pkgname) {
config_resources <<-
read.csv(file = system.file("extdata", "config.csv", package = "TSTpkg"),
stringsAsFactors = FALSE)
}
Правильный ли это подход к достижению того, что я хочу делать? Если нет, то какой подход будет правильным? Наконец, есть ли способ сделать эти данные доступными для внутреннего пользования, сохранив при этом возможность изменять их по запросу? Что-то похожее на sysdata.rda, но без необходимости перестраивать пакет, чтобы изменения вступили в силу.
@Roland Пакет будет получать доступ к данным из структуры каталогов / файлов, которая может время от времени изменяться. Я думал об этом файле как о быстром / простом способе для наивного пользователя внести изменения в случае необходимости. Не могли бы вы уточнить или предоставить какие-либо ссылки на то, почему мне не следует иметь конфигурационный пакет в моем пакете?
Сказать пользователю перейти к папке с его библиотекой (что уже является проблемой для многих), а затем внутри установленной структуры пакета, мне не кажется простым. Было бы предпочтительнее разрешить пользователю импортировать данные из произвольного места (возможно, в сочетании с простой возможностью экспорта файла по умолчанию в качестве шаблона).
Предоставляет ли пакет config какие-либо полезные строительные блоки для вас?





Я не думаю, что у вас должен быть файл конфигурации в вашем пакете (хотя вы не объясняете, зачем он вам нужен). Может, лучше использовать
optionsили что-то подобное? См. Примерhttps://github.com/Rdatatable/data.table/blob/master/R/onLoad.R.