relist, an inverse operator to unlist
# returns list(a1 = 1, a2 = 2, b = 3) with an attribute # "reshapeLong" containing skeleton (existing reshape also uses # "reshapeWide" and "reshapeLong" attributes) L <- list(a = 1:2, b = 3) long <- reshape(L, direction = "long") # returns original list but with an attribute "reshapeWide" reshape(long, direction = "wide") In the last case there a new optional skeleton argument would be added.
On 5/23/07, Andrew Clausen <clausen at econ.upenn.edu> wrote:
Hi Gabor, Can you suggest some examples of how your proposal could be used? Reshape never returns a vector. Cheers, Andrew On Tue, May 22, 2007 at 07:36:56PM -0400, Gabor Grothendieck wrote:
One additional idea. I wonder if reshape might be promoted to a generic and relist made into methods for it. The unlisted version of an object would be the "long" version and the original version of the list would be the "wide" version. This would consolidate the two concepts together and make it easier to use since the user could leverage his knowledge of how reshape works to lists where it would work analogously. Essentially reshape(myList, direction = "long") would be similar to unlist but would add the attributes need to reverse the procedure and reshape(myList, direction = "wide") would perform the inversion. I am not sure if the reshape package has any bearing here as well. On 5/22/07, Andrew Clausen <clausen at econ.upenn.edu> wrote:
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
Cheers,
Andrew
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel