[Rd] Functions with the same name: best practices

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Aug 23 08:38:34 CEST 2005


It depends on the example, as you might guess.

profile() is a generic function in stats.  Namespaces are not going to 
help there, as it is normally called by users (it is also called by some 
confint() methods, and that will be protected by namespaces).

For functions intended to be used by end-users, I think there is little 
choice but to have distinct names.  For other functions, you would not 
need to export them from the namespace of your package, and then probably 
the nameclash would be of little consequence.  However, even there beware 
of examples like Adai's with 'df', where model.frame() found that object 
in the package rather than in his workspace.

On Mon, 22 Aug 2005, hadley wickham wrote:

> Ok, here's another best practices question - let's say I'm writing a
> package and I want to use a function name that is already claimed by a
> function in the base R packages.  For the sake of argument, let's
> pretend this function is for profiling the performance of a function
> (like Rprof for example), and so an obvious name that comes to mind is
> profile.  This, of course, clashes with the built in profile for
> "investigating behavior of objective function near the solution
> represented by fitted."
>
> A little thinking and a quick survey of other packages reveal some
> possible solutions:
>
> * capitalise the function differently (eg. Profile)
> * use a prefix/suffic (eg. Rprof)
> * use a thesaurus
> * use namespaces (and rely on others to use namespaces correctly in
> their code/packages)
>
> What would you suggest?
>
> Thanks again,
>
> Hadley
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list