Выбор методов для унаследованного класса S4

У меня вопрос, как применить обобщенную функцию plot() используя мой новый метод для моего унаследованного класса S4.

Я расширяю существующий класс S4 (по имени stanfit) в rstan, скажем, lowerS4classи определить новый метод для универсальной функции plot скажем, для расширенного (унаследованного) класса S4 upperS4class,

Но следующий нежелательный выбор (т. Е. Выбранный метод является методом для более низкого класса S4) происходит со следующим Note в консоли R, когда я применяю обобщенную функцию plot() для расширенного объекта класса S4 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)
             }

           )

где foo является функцией, определенной для upperS4class.

Отсроченный за upperS4class

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

                   # Inheritance
                   contains = "lowerS4class"

                   # New slots
                   representation(

                      .....
                   ),

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


                      ),

)

--- Редактировать для комментариев ------------------

Изменяя вышеизложенное следующим образом, все идет хорошо. Спасибо за @JDL.

 setMethod("plot",
           signature(x = "stanfitExtended",
                     y = "missing"       # <--------------What's New !!
                     ),
           definition = function(x){ 
             foo(x)
             }

       )

0 ответов

Другие вопросы по тегам