在 R 包中包含 R6 class 对象
Include R6 class object in R package
我目前正在开发一个 R 包,我想包含一个 class R6
的对象,它基本上是一个环境,以便用户可以轻松地使用它(与它的工作方式相同包中的数据集)。
我有一个 R6ClassConstructor
网格世界:
Gridworld <- R6::R6Class( ... )
然后我可以使用 grid = Gridworld$new()
创建一个新实例,它会生成一个 R6 class。然后我想将这个对象 grid
保存在包中,这样用户只需输入 grid
.
就可以使用它
我尝试将 grid
保存为 /data
文件夹中的 .RData
对象,并在 /R
文件夹中记录 R6 class:
#' Gridworld
#' @format R6 class
"grid"
但这会导致 devtools::document
中出现错误:文件 'grid.RData' 具有幻数 'X'
如何在包中包含此 R6
class 对象?
也许最好在加载包时调用 new
。这样你就不会遇到任何关于引用语义的问题。
查看答案here
在你的情况下,这看起来像
# file R/zzz.R
.onLoad <- function(libname, pkgname){
gridworldInstance <- Gridworld$new()
}
# documentation
#' Instance of grid world
#'
#' some description
#'
#' @name gridworldInstance
NULL
#' @export
我目前正在开发一个 R 包,我想包含一个 class R6
的对象,它基本上是一个环境,以便用户可以轻松地使用它(与它的工作方式相同包中的数据集)。
我有一个 R6ClassConstructor
网格世界:
Gridworld <- R6::R6Class( ... )
然后我可以使用 grid = Gridworld$new()
创建一个新实例,它会生成一个 R6 class。然后我想将这个对象 grid
保存在包中,这样用户只需输入 grid
.
我尝试将 grid
保存为 /data
文件夹中的 .RData
对象,并在 /R
文件夹中记录 R6 class:
#' Gridworld
#' @format R6 class
"grid"
但这会导致 devtools::document
中出现错误:文件 'grid.RData' 具有幻数 'X'
如何在包中包含此 R6
class 对象?
也许最好在加载包时调用 new
。这样你就不会遇到任何关于引用语义的问题。
查看答案here
在你的情况下,这看起来像
# file R/zzz.R
.onLoad <- function(libname, pkgname){
gridworldInstance <- Gridworld$new()
}
# documentation
#' Instance of grid world
#'
#' some description
#'
#' @name gridworldInstance
NULL
#' @export