[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,
> R-devel at r-project.org mailing list
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