I think, it must be x instead of object? setMethod("length", signature(x="Collection"), function(x) length([EMAIL PROTECTED]))
> 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 ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel