Hi! Have you tried ? setMethod("length",signature(object="Collection"),function(object){ length([EMAIL PROTECTED])}) °°°°°°°°°°° And I would use R.2.0 instead of R.1.9
/E *********** REPLY SEPARATOR *********** On 9/22/2004 at 10:21 AM Eric Lecoutre wrote: >>>Hello R Power Users, >>> >>>There is a rather large introduction you may skip to go directly to >>>my question about S4 classes. >>> >>>I am working on some toy code to help me get in through S4 classes. >>>Doing this homework, I have some questions about S4 classes. I have >>>carefully read available help and some additional material such as >>>Robert >>>Gentleman's slides and special attention to "Programming with Data". >>> >>>I am working with R 1.9 on Windows. >>> >>>Final goal is the complete rewriting of my R2HTML package from scratch >>>to >>>provide to users a convenient way to describe their output and to allow >>>different output format (provided by special functions - drivers, "à la" >>>Sweave - HTML, LaTeX, XML...). >>> >>>As BillGates guys often have good ideas (or find or buy them), I take >>>the >>>structure of Word documents as a starting point. >>> >>>A document will be a collection of Objects, which will be either a >>>standard >>>R object or a graph, in both cases with some Formatting Options (FO) >>>added. >>>Formatting Options (a class) is a list of named components like >>>(font-size: >>>16, forecolor: darkred). >>> >>>Here is what I have for the moment: >>> >>> > setClassUnion("ROMA_ID", c("NULL","character")) >>> > setClass("Objects",representation("list",ID="ROMA_ID")) >>> >>>ie: Objects is a list (there will be objects of class "Object" without >>>"s") >>>and ID provided to all objects. >>> >>>Then, as I will manipulate several such collections, such as Documents, >>>Graphs, and so on, I define the virtual class Collection. At the moment: >>> >>> > setClassUnion("Collection",c("Objects","Documents","Graphs")) >>> >>>Then, I follow Chambers's samples to add some functionality such as >>>show() >>>functions and manipulations. A "+" method applied on two "Object" >>>creates a >>>new Objects collection. >>> >>>As you can see from this output, both the definition of the mehod for >>>"+" >>>and for "show" are correct: >>> >>> >>>---------- output --------------- >>> > Object(1)+Object("Oui") >>><ROMA> Collection of Objects: 2 objects. >>> >>>ID: numeric >>> <ROMA> Object >>> Classe: numeric >>> FO: alignment >>> >>>ID: character >>> <ROMA> Object >>> Classe: character >>> FO: font;fontsize;fontcolor;alignment >>>---------- output --------------- >>> >>> >>> >>>I have succedded adding a method to generic "+" operator, which is >>>initially defined as: >>> >>> > getMethod("+") >>>.Primitive("+") >>> >>>As I understand it, the fact that it is a .Primitive call ensures the >>>default method for any extendion (that is: we can add methods). >>> >>>Now, I try to add a method for length to handle "Collection" classes. >>> >>> > getMethod("length") >>>.Primitive("length") >>> >>> >>>*** QUESTION: >>> >>> >>>I dont undertand the following error message when trying to define this >>>method: >>> >>> > setMethod("length","Collection",function(object){ length([EMAIL PROTECTED])}) >>>Error in conformMethod(signature, mnames, fnames, f) : >>> In method for function "length": Formal arguments omitted in >>>the >>>method definition cannot be in the signature (x = "Collection") >>> >>>How is it possible to extend length to my own class? >>> >>> >>> >>>Be HappyR and HappyR again, >>> >>>Eric >>> >>>Eric Lecoutre >>>UCL / Institut de Statistique >>>Voie du Roman Pays, 20 >>>1348 Louvain-la-Neuve >>>Belgium >>> >>>tel: (+32)(0)10473050 >>>[EMAIL PROTECTED] >>>http://www.stat.ucl.ac.be/ISpersonnel/lecoutre >>> >>>If the statistics are boring, then you've got the wrong numbers. -Edward >>>Tufte >>> >>>______________________________________________ >>>[EMAIL PROTECTED] mailing list >>>https://stat.ethz.ch/mailman/listinfo/r-devel Dipl. bio-chem. Witold Eryk Wolski @ MPI-Moleculare Genetic Ihnestrasse 63-73 14195 Berlin 'v' tel: 0049-30-83875219 / \ mail: [EMAIL PROTECTED] ---W-W---- http://www.molgen.mpg.de/~wolski [EMAIL PROTECTED] ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel