S4 Method Dispatch for Class Defined as Attribute

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

S4 Method Dispatch for Class Defined as Attribute

Dario Strbenac-2
Hello,

I am writing an interface to some functions from the CRAN package pamr, which is poorly written.

I have a S4 method I declared with setMethod. I'd like to provide a signature of "pamrtrained" which is the class of object that training creates. The last two lines of code of pamr.train are :

    class(junk) = "pamrtrained"
    junk

How can I dispatch on these kinds of objects, other than making the signature be "ANY" and checking the class inside the S4 method ? Might these kinds of class assignments be deprecated in a future version of R ?

--------------------------------------
Dario Strbenac
PhD Student
University of Sydney
Camperdown NSW 2050
Australia

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: S4 Method Dispatch for Class Defined as Attribute

Sven E. Templer
Is setOldClass the solution?

e.g.

x <- list()
class(x) <- "foo"
setGeneric("bar", function(x) "bar generic")
setOldClass("foo")
setMethod("bar", "foo", function(x) "bar foo")
bar(x)

On 7 October 2014 10:00, Dario Strbenac <[hidden email]> wrote:

> Hello,
>
> I am writing an interface to some functions from the CRAN package pamr, which is poorly written.
>
> I have a S4 method I declared with setMethod. I'd like to provide a signature of "pamrtrained" which is the class of object that training creates. The last two lines of code of pamr.train are :
>
>     class(junk) = "pamrtrained"
>     junk
>
> How can I dispatch on these kinds of objects, other than making the signature be "ANY" and checking the class inside the S4 method ? Might these kinds of class assignments be deprecated in a future version of R ?
>
> --------------------------------------
> Dario Strbenac
> PhD Student
> University of Sydney
> Camperdown NSW 2050
> Australia
>
> ______________________________________________
> [hidden email] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel