[R] Building packages in R - 'private' functions
Joerg van den Hoff
j.van_den_hoff at fz-rossendorf.de
Wed Jun 7 09:49:54 CEST 2006
Dan Rabosky wrote:
> Hello.
>
> 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
> functions.
>
> 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
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
it's in the 'extensions' manual, including an example I believe:
1.
create a file `NAMESPACE' in the package top level dir (beside `R' and
`man') containing the single line
exportPattern("^[^\\.]")
2.
name all private functions with a leading `.' (more precisely: all
functions starting with a `.' are private in this setting).
of course, you can modify the pattern to suit another naming convention.
joerg
More information about the R-help
mailing list