On 5/23/07, Gabor Grothendieck <[EMAIL PROTECTED]> wrote:
> On 5/23/07, Martin Maechler <[EMAIL PROTECTED]> wrote:
> > >>>>> "GaGr" == Gabor Grothendieck <[EMAIL PROTECTED]>
> > >>>>>     on Wed, 23 May 2007 08:56:50 -0400 writes:
> >
> >    GaGr> On 5/23/07, Seth Falcon <[EMAIL PROTECTED]> wrote:
> >    >> Andrew Clausen <[EMAIL PROTECTED]> writes:
> >    >>
> >    >> > Hi Seth,
> >    >> >
> >    >> > On Mon, May 21, 2007 at 05:15:10PM -0700, Seth Falcon wrote:
> >    >> >> I will also add that the notion of a default argument on a generic
> >    >> >> function seems a bit odd to me.  If an argument is available for
> >    >> >> dispatch, I just don't see what sense it makes to have a default.  
> > In
> >    >> >> those cases, the default should be handled by the method that has a
> >    >> >> signature with said argument matching the "missing" class.
> >    >> >>
> >    >> >> What often does make sense is to define a generic function where 
> > some
> >    >> >> argument are not available for dispatch.  For example:
> >    >> >>
> >    >> >> setGeneric("foo", signature="flesh",
> >    >> >>            function(flesh, skeleton=attr(flesh, "skeleton")
> >    >> >>                standardGeneric("foo")))
> >    >> >
> >    >> > That's an excellent suggestion.  Thanks!  However, I had to set the 
> > signature
> >    >> > to c("numeric", "missing") rather than just "numeric".
> >    >> >
> >    >> > I have uploaded a new version here:
> >    >> >
> >    >> >       http://www.econ.upenn.edu/~clausen/computing/relist.R
> >    >>
> >    >> I misunderstood.  You aren't using S4 classes/methods at all
> >    >> and so I don't actually see how my comments could have been helpful in
> >    >> any way.  relist seems like a really odd solution to me, but based on
> >    >> the discussion I guess it has its use cases.
> >
> >    GaGr> You didn't misunderstand but there was an offline
> >    GaGr> discussion pointing out that one primary use is in the
> >    GaGr> inner loop of an optimization so it should be made as
> >    GaGr> efficient as possible and it was changed with that in
> >    GaGr> mind.
> >
> > Thank you Gabor for that explanation.
> > (I had wondered, too, and was glad that Andrew had dropped S4
> >  generics seemingly "by himself"  ;-))
> >
> > Re your proposal of mixing this into reshape():
> >
> > I think it's a nice and didactly helpful idea to point out the
> > similarity in concepts between reshape() and relist().
> >
> > However, I wouldn't like to make reshape() generic in this
> > sense:  As Andrew has mentioned as well, I think the two topics
> > of data.frame (/matrix) reshaping and list <-> vector transformation
> > seem too much different...
> >
> > Martin
> >
>
> Another possibility is to call it reshapeList instead of relist or reshape and
> the argument list made similar to reshape to keep the analogy as to
> reshape as close as possible to leverage the R user's knowledge of
> reshape.
>
> However, I am not so sure it really is different.  Both reshape and
> relist involve flattening of structures and then reconstructing them back
> to the original.  This seems very similar to me.

The cast and melt operators in reshape are already generic, if you
wanted to hook onto those instead.

Hadley

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to