问题描述
我遇到了 R6 继承问题。我正在编写 2 个包(工作相关,所以我必须使用假代码,但我会尽量保持准确)。
在 ParentPackage 中,我定义了一个 R6 类 ParentClass。
#' @name ParentClass
#' @title ParentClass
#' @description blah blah
#' @importFrom R6 R6Class
#' @exportClass ParentClass
#' @export
ParentClass <-
R6Class('ParentClass',initialize() = function(){print('initialize')},list(method1 = function(){
print('test')
}
# create helper function to create R6 class
#' @name create_ParentClass_object
#' @title Create a ParentClass object
#' @description
#' Helper function to create ParentClass object
#' @export create_ParentClass_object
create_ParentClass_object = function(){
return(ParentClass$new())
}
安装后运行以下命令。
devtools::check()
roxygenize()
document()
install()
NAMESPACE 文件看起来正确。
export(ParentClass)
export(create_ParentClass_object)
exportClasses(ParentClass)
importFrom(R6,R6Class)
转到文件 2,保存在单独的目录中。它被称为 ChildPackage。
#' @name ChildClass
#' @title Create ChildClass Object
#' @description blah blah 2
#' @importFrom R6 R6Class
#' @importClassesFrom ParentPackage ParentClass
#' @importFrom ParentPackage ParentClass
#' @export
ChildClass<-
R6Class('ChildClass',inherit = ParentClass,initialize = function(){},method2 = function(){}
)
但是我在尝试编译时遇到错误。
roxygenise()
Warning message:
class "ParentClass" is not exported by 'namespace:ParentPackage'
install()
Error: class "ParentClass" is not exported by 'namespace:ParentPackage'
请注意,加载父库会显示类。即,ParentPackage::ParentClass 显示类。
R version 4.0.3 (2020-10-10)
roxygen2_7.1.1 devtools_2.3.2 usethis_2.0.0
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)