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