Actually I think Simon's approach is a good one. Maybe Simon's comment was really intended to say that its dangerous to redefine list operations but it should not be dangerous to define a subclass of list and override operations that way. Also since the whole purpose of this is for speed I think S3 is a better fit since from what I have seen S3 is faster than S4.
On 5/7/05, Vadim Ogranovich <[EMAIL PROTECTED]> wrote: > 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:[EMAIL PROTECTED] > > 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 > > > > > > > ______________________________________________ R-devel@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-devel