[R] Building packages in R - 'private' functions

Dan Rabosky dlr32 at cornell.edu
Wed Jun 7 07:14:23 CEST 2006


I am creating an R package that I'd like to submit to CRAN (OS Windows 
XP).  How do I distinguish among 'public' functions, e.g., those that are 
intended to be called by users of the package and for which I am providing 
documentation & examples, and 'private' functions, which are used 
internally by the 'public' functions, but for which I do not wish to 
provide documentation?  The private functions are all coded in R (nothing 
in C or Fortran) and are essential to the operation of several public 

I have been unable to find any documentation on this in the 'writing r 
extensions' manual', on previous posts to R-help, or through any other 
source.  One possibility is to include the source code for the 'private' 
functions within the public functions.  However, since multiple public 
functions utilize the same core set of 'private' functions, this seems 
unwieldy and redundant at best.

If I simply include the source for the 'private' functions in the "R" 
directory (without corresponding *.Rd and *.html documentation in /man), 
then check the package with "R CMD check', it does appear to process the 
private functions (and successfully builds with R CMD build).  However, I 
do receive a warning for including undocumented code objects.  Is this the 
recommended approach and/or is there a better way to do this?  One 
potential problem with this approach is that - should an error occur within 
a private function, it may be very difficult for the user to decipher the 
nature of the problem.

Any suggestions will be greatly appreciated.
~Dan Rabosky

Dan Rabosky
Department of Ecology and Evolutionary Biology
237 Corson Hall
Cornell University
Ithaca, NY14853-2701 USA
DLR32 at cornell.edu
web: http://www.birds.cornell.edu/evb/Graduates_Dan.htm

More information about the R-help mailing list