Re: [Rd] Functions with the same name: best practices

From: Prof Brian Ripley <>
Date: Tue 23 Aug 2005 - 06:38:34 GMT

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
> ______________________________________________
> mailing list

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
Received on Tue Aug 23 16:42:11 2005

This archive was generated by hypermail 2.1.8 : Mon 24 Oct 2005 - 22:27:43 GMT