[Rd] relist, an inverse operator to unlist

Seth Falcon sfalcon at fhcrc.org
Tue May 22 02:15:10 CEST 2007


Hi Andrew,

Andrew Clausen <clausen at econ.upenn.edu> writes:
> For reasons I can't explain, the code I posted worked in my session, but didn't
> work when I started a fresh one.  standardGeneric() seems to get confused
> by defaults for missing arguments.  It looks for a "missing" method with
> this code:
>
> 	relist <- function(flesh, skeleton=attr(flesh, "skeleton"))
> 	{
> 		standardGeneric("relist")
> 	}

This looks very odd to me.  If you are creating an S4 generic
function, why are you not calling setGeneric?  Or has that part of the
code simply been omitted from your post?

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")))


+ seth

-- 
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org



More information about the R-devel mailing list