[Rd] group generics

Ross Boylan ross at biostat.ucsf.edu
Thu Dec 3 23:59:29 CET 2009


On Thu, 2009-12-03 at 14:25 -0800, John Chambers wrote:
> I missed the earlier round of this discussion and only am commenting
> now to say that this doesn't seem weird at all, if I understand what
> you're trying to do.
> 
> Martin's basic suggestion,
> v <- callGeneric(e1, as(e2, "A"))
> seems the simplest solution.
> 
> You just want to make another call to the actual generic function,
> with new arguments, and let method selection take place.  In fact,
> it's pretty much the standard way to use group generics.  
> 
> John
There were 2 weird parts.  Mainly I was referring to the fact that
identical code (posted earlier) worked sometimes and not others.  I
could not figure out what the differences were between the 2 scenarios,
nor could I create a non-working scenario reliably.

The second part that seemed weird was that the code looked as if it
should work all the time (the last full version I posted, which used
callNextMethod() rather than callGeneric()).

Finally, I felt somewhat at sea with the group generics, since I wasn't
sure exactly how they worked, how they interacted with primitives, or
how they interacted with callNextMethod, selectMethod, etc.  I did study
what I thought were the relevant help entries.

Ross
> 
> 
> Ross Boylan wrote: 
> > Thanks for your help.  I had two concerns about using as: that it would
> > impose some overhead, and that it would require me to code an explicit
> > conversion function.  I see now that the latter is not true; I don't
> > know if the overhead makes much difference.
> > 
> > On Thu, 2009-12-03 at 13:00 -0800, Martin Morgan wrote:
> >   
> > > setMethod("Arith", signature(e1="numeric", e2="B"), function(e1, e2) {
> > >     new("B", xb=e1*e2 at xb, callGeneric(e1, as(e2, "A")))
> > > })
> > >     
> > 
> > Things were getting too weird, so I punted and used explicitly named
> > function calls for the multiplication operation that was causing
> > trouble.
> > 
> > Ross
> > 
> > ______________________________________________
> > R-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> > 
> >



More information about the R-devel mailing list