Есть ли более элегантный способ сделать так, чтобы отдельный набор данных не загружался при записи пакета R? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть функция в пакете R, которая в основном просто ищет пары ключ-значение из фрейма данных. В настоящее время у меня есть этот фрейм данных (.dat_oa), хранящийся в "R / sysdata.rda", а LazyData установлен в true в файле пакета "DESCRIPTION". Если бы я ничего не изменил, это означало бы, что в первый раз, когда я запускал соответствующую функцию, к времени выполнения добавлялась секунда. После этого он будет работать более или менее мгновенно. Я чувствую, что отсутствие согласованности будет плохо смотреться для конечного пользователя, и я бы предпочел снять штраф за время загрузки данных до момента загрузки пространства имен пакета, т.е. переключение отложенной загрузки для объекта .dat_oa. В настоящее время я добился этого, добавив следующий код в мой файл "R / zzz.r":

.onLoad <- function(libname, pkgname){
  invisible(.dat_oa)
}

Это работает, но выглядит как выдумка. Есть ли более элегантный способ? Я не хочу устанавливать LazyData в false в файле пакета «ОПИСАНИЕ», так как я все еще хочу использовать отложенную загрузку для наборов данных пакета.

...