From vograno at evafunds.com  Sat May  7 22:18:07 2005
From: vograno at evafunds.com (Vadim Ogranovich)
Date: Sat May  7 22:18:16 2005
Subject: [Rd] how to add method to .Primitive function
Message-ID: <C698D707214E6F4AB39AB7096C3DE5A59E9336@phost015.EVAFUNDS.intermedia.net>

Thank you for the tip! I'll see if I can take it on to "[<-.mylist" 

Why do you think it will be hard to replace data frames? Insightful
recently introduced a new class, largeDataFrame or something like this.
This new class looks and feels like a data.frame, but they made two key
simplifications: all columns are atomic vectors and there is no
rownames. Maintaining the latter is a big overhead in many data.frame
operations, consider for example rbind() which needs to ensure uniquness
of the row names.

I'd really like to hear why you think it would be a bad idea to have
such a class.

Thanks,
Vadim

> -----Original Message-----
> From: Simon Urbanek [mailto:simon.urbanek@r-project.org] 
> Sent: Saturday, May 07, 2005 12:34 PM
> To: Vadim Ogranovich
> Cc: Gabor Grothendieck; r-devel@stat.math.ethz.ch
> Subject: Re: [Rd] how to add method to .Primitive function
> 
> On May 7, 2005, at 2:59 PM, Vadim Ogranovich wrote:
> 
> 
> > But then mylist is not a list:
> >
> >
> >> x <- new("mylist", x = list(x = 1, y = 2)) x[[1]]
> >>
> >>
> > Error in x[[1]] : subscript out of bounds
> >
> > This is probably solvable by a sprinkle of setIs or setAs 
> spells, but
> > each time I get into the S4 area I feel walking a mine-field.
> >
> 
> Well, then you can still use S3:
> x <- list(x=1:5, y=5:1)
> class(x) <- "mylist"
> dim.mylist <- function(l) c(length(l[[1]]),length(l))
> dim(x)
> [1] 5 2
> x[[1]]
> [1] 1 2 3 4 5
> is.list(x)
> [1] TRUE
> 
> I'm not saying it's a good idea, because you can still break other  
> things if you're not careful, but it's possible... If all you 
> want is  
> writing convenience functions for lists, that's fine, but I don't  
> think you can replace data frames with such objects easily ...
> 
> Cheers,
> Simon
> 
> 
>


[Rd] how to add method to .Primitive function
Vadim Ogranovich