Re: [R] Where to declare S4 classes?

From: Prof Brian Ripley <>
Date: Sun 05 Mar 2006 - 19:38:55 EST

On Sun, 5 Mar 2006, Patrick Giraudoux wrote:

> OK. Looks like I have got it... going through the source code of sp,
> classes are declared as usual functions in *.R files. With the current
> example, suppose I must write two files of names "class-Prior.R" and
> "class-SamplePrior.R" including
> setClass("Prior",representation(Distrib="character",Params="list")) and
> setClass("SamplePrior",representation("Prior",Sample="list")) respectively.
> Suppose the alphabetical order of each file name may be important
> somehow, since "SamplePrior" cannot be defined without a prior
> definition of "Prior"
> Can anybody confirm?

Indeed. I suggest that you just use one file for all related classes and methods. How R code in a package is divided amongst files is just a matter of convenience for you, the maintainer. They will all be concatenated before use. (The order is alphabetic in the C locale unless you override it via the Collate: field in the DESCRIPTION file.)

> If so, I can go on with validity checking functions...
> Patrick
> Patrick Giraudoux a écrit :
>> Dear listers,
>> I am making a trial to move from S3 to S4... I have created some
>> classes of interest and they work acceptably well for the purpose. I
>> am now wondering how to make them operate in a package. In clear when
>> a package is loaded (eg library(mypackage)) where should I put the
>> class descriptions:
>> setClass("Prior",representation(Distrib="character",Params="list"))
>> setClass("SamplePrior",representation("Prior",Sample="list"))
>> so that they are created and then usable for functions after a simple
>> call to library(mypackage).
>> It is probably something trivial, but I could not find out something
>> clear on this (eg example) in the R-help-list, writing R-extensions,
>> nor in S programming... and trying to get this info through reading
>> other library codes has been unsuccessful.
>> Patrick
> ______________________________________________
> mailing list
> PLEASE do read the posting guide!

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list PLEASE do read the posting guide!

Received on Sun Mar 05 19:51:40 2006

This archive was generated by hypermail 2.1.8 : Mon 06 Mar 2006 - 00:09:04 EST