[R] S4 class and Package NAMESPACE [NC]

Martin Morgan mtmorgan at fhcrc.org
Fri Jul 25 17:58:34 CEST 2008


Sylvain ARCHENAULT wrote:
> Hello,
> 
> I am trying to make a R package with S4 classes. To do so, i do as usual 
> (when no S4 were involved, i.e without NAMESPACE file) and I've got errors 
> in class refering to other classes in the package.

Probably because the files are collated in such a way that some classes 
are referenced (in other class definitions or methods) before they are 
defined? You can use the Collate: field in DESCRIPTION, or adopt a 
convention such as defining all classes (in a sensible way) in a file 
such as AllClasses.R (which happens to collate early).

> So I use a NAMESPACE file to declare classes, it works fine, but now I 
> have to declare each functions in the NAMESPACE file. Since I have a lot 
> of functions, it's not very easy. 

My strategy is to

exportPattern("^[^\\.]")

in NAMESPACE, and use .funcName to mark functions that I don't want to 
export. This exports the generics and implicitly the methods defined on 
those generics. If you define methods on generics from other packages, 
then it's necessary to

exportMethods

an exportMethodsPattern might be a useful addition  (either to my 
knowledge or to R).

Hope that helps

Martin
> 
> Is there a way to exports all methods in one statement ? or is there a 
> tool which can help generating the NAMESPACE file ?
> 
> Thanks for your help,
> Sylvain.
> 
> PS: Could you please CC me in your replies since I do not subscribe to the 
> list.
> *************************************************************************
> This message and any attachments (the "message") are con...{{dropped:15}}
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


-- 
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M2 B169
Phone: (206) 667-2793



More information about the R-help mailing list