Hi the list, I am defining a new class. Shortly, I will submit a package with it. Before, I would like to know if there is a kind of "non official list" of what method a new S4 object should have. More precisely, personally, I use 'print', 'summary' and 'plot' a lot. So for my new class, I define these 3 methods and of course, a get and a set for each slot. What else? Is there some other methods that a R user can reasonably expect? Some "minimum basic tools"... Thanks Christophe [[alternative HTML version deleted]]
I don't know of any '"non official list" of what method a new S4 object should have' - such a list would have to depend on what the object represents. If it represents the output of fitting a model, then methods for 'residuals', 'fitted' and 'coefficients' would probably be nice. Also, out of curiosity, what do your methods for `get' and `set' for each slot look like? Is there any advantage to using such methods over using slot(objectOfYourClass, "aSlotName") # for get, and slot(objectOfYourClass, "aSlotName") <- aValue # for set On Sat, 23 Feb 2008, Christophe Genolini wrote:> Hi the list, > > I am defining a new class. Shortly, I will submit a package with it. > Before, I would like to know if there is a kind of "non official list" > of what method a new S4 object should have. > More precisely, personally, I use 'print', 'summary' and 'plot' a lot. > So for my new class, I define these 3 methods and of course, a get and a > set for each slot. What else? Is there some other methods that a R user > can reasonably expect? Some "minimum basic tools"... > > Thanks > > Christophe > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
It depends on what the object is to be used for. If you want users to be able to operate with the object as if it were a normal vector, to do things like mean(x), cos(x), etc. then the list would be very long indeed; for example, there are 225 methods for the S4 'bdVector' class (in S-PLUS), plus additional methods defined for inheriting classes. In cases like this you might prefer using an S3 class, using attributes rather than slots for auxiliary information, so that you don't need to write so many methods. Tim Hesterberg>I am defining a new class. Shortly, I will submit a package with it. >Before, I would like to know if there is a kind of "non official list" >of what method a new S4 object should have. >More precisely, personally, I use 'print', 'summary' and 'plot' a lot. >So for my new class, I define these 3 methods and of course, a get and a >set for each slot. What else? Is there some other methods that a R user >can reasonably expect? Some "minimum basic tools"... > >Thanks > >Christophe