定义一个 S4 class,其插槽在另一个包中有 class 定义
Define an S4 class with slots that have their class definitions in another package
我想在 R 中定义一个 S4 class。其中一个插槽应包含一个 mcmc
对象,如 coda
包中定义的那样。我尝试了以下方法:
library("coda")
setClass(Class = "myClass", representation = representation(var = "mcmc"))
但这会导致警告:
Undefined slot classes in the definition of "myClass": var(class "mcmc")
class 定义稍后不起作用并抛出一条错误消息,因为 var
有一个 "undefined class".
如何告诉 setClass
命令到哪里寻找 mcmc
对象的定义?
我认为这是因为 mcmc
是 S3 class 而不是正式的 S4
class。您需要使用 setOldClass
将 S3
注册为正式定义的 class.
setOldClass("mcmc")
setClass(Class = "myClass", representation = representation(var = "mcmc"))
我想在 R 中定义一个 S4 class。其中一个插槽应包含一个 mcmc
对象,如 coda
包中定义的那样。我尝试了以下方法:
library("coda")
setClass(Class = "myClass", representation = representation(var = "mcmc"))
但这会导致警告:
Undefined slot classes in the definition of "myClass": var(class "mcmc")
class 定义稍后不起作用并抛出一条错误消息,因为 var
有一个 "undefined class".
如何告诉 setClass
命令到哪里寻找 mcmc
对象的定义?
我认为这是因为 mcmc
是 S3 class 而不是正式的 S4
class。您需要使用 setOldClass
将 S3
注册为正式定义的 class.
setOldClass("mcmc")
setClass(Class = "myClass", representation = representation(var = "mcmc"))