我目前正在开发一个R包,我希望包含一个类R6的对象,它基本上是一个环境,这样用户就可以很容易地使用它(就像它处理包中的数据集一样)。
我有一个R6ClassConstructor Gridworld:
Gridworld <- R6::R6Class( ... )然后,我可以使用grid = Gridworld$new()创建一个新实例,该实例生成一个R6类。然后,我希望将这个对象grid保存在包中,以便用户只需输入grid就可以使用它。
我试图将grid保存为/data文件夹中的.RData对象,并在/R文件夹中记录R6类:
#' Gridworld
#' @format R6 class
"grid"但是这导致了devtools::document中的一个错误:文件'grid.RData‘有神奇的数字'X’
如何在包中包含这个R6类对象?
发布于 2017-06-27 10:20:12
也许最好在加载包时调用new。这样,您就不会在引用语义方面有任何问题。
见答案here
在你的例子中,这看起来就像
# file R/zzz.R
.onLoad <- function(libname, pkgname){
gridworldInstance <- Gridworld$new()
}
# documentation
#' Instance of grid world
#'
#' some description
#'
#' @name gridworldInstance
NULL
#' @exporthttps://stackoverflow.com/questions/44776015
复制相似问题