继承的S4类的方法选择

时间:2018-12-28 03:05:05

标签: r inheritance methods s4 generic-function

我的问题是如何对继承的S4类使用新方法来应用通用函数plot()

我在 rstan 中扩展现有的S4类(其名称为 stanfit ),例如lowerS4class,并为泛型函数{{1 }}(对于扩展的(继承的)S4类,请说plot

但是以下不希望的选择(即所选方法是  当我将扩展S4类对象upperS4class的通用函数Note用作plot()时,R控制台中的以下x会发生以下情况。

plot(x)

编辑以进行评论------------------------------------- ----

继承

Note: method with signature "lowerS4class#missing" chosen for function ‘plot’,
 target signature "upperS4clss#missing".
 "upperS4clss#ANY" would also be valid

其中 setMethod("plot", signature(x = "upperS4class"), definition = function(x){ foo(x) } ) 是为upperS4class定义的函数。

防御foo

upperS4class

---编辑评论------------------

通过如下更改上述内容,效果很好。谢谢@JDL。

upperS4class <- setClass(
                  #Name for upper class
                  "upperS4class",

                   # Inheritance
                   contains = "lowerS4class"

                   # New slots
                   representation(

                      .....
                   ),

                   # Initial values for new slots
                   prototype(
                      .....


                      ),

)

0 个答案:

没有答案