Включить объект класса R6 в пакет R
В настоящее время я разрабатываю пакет R и хочу включить объект класса R6
, которая в основном является средой, так что пользователи могут легко использовать ее (так же, как она работает с наборами данных в пакете).
у меня есть R6ClassConstructor
Gridworld:
Gridworld <- R6::R6Class( ... )
Затем я могу создать новый экземпляр, используя grid = Gridworld$new()
, который генерирует класс R6. Затем я хочу сохранить этот объект grid
в пакете, так что пользователь может использовать его, просто набрав в grid
,
Я пытался сохранить grid
как .RData
объект в /data
папку и документировать класс R6 в /R
папка:
#' Gridworld
#' @format R6 class
"grid"
но это вызывает ошибку в devtools::document
: файл 'grid.RData' имеет магическое число 'X'
Как я могу включить это R6
объект класса в пакете?
1 ответ
Может быть, было бы лучше позвонить new
когда пакет загружен. Таким образом, у вас не будет проблем с ссылочной семантикой.
Смотрите ответ здесь
В вашем случае это будет выглядеть так
# file R/zzz.R
.onLoad <- function(libname, pkgname){
gridworldInstance <- Gridworld$new()
}
# documentation
#' Instance of grid world
#'
#' some description
#'
#' @name gridworldInstance
NULL
#' @export