我的问题是如何对继承的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(
.....
),
)