[R] Risks of using "function <- package::function" ?
Duncan Murdoch
murdoch.duncan at gmail.com
Fri Nov 17 01:46:15 CET 2017
On 16/11/2017 4:53 PM, Boris Steipe wrote:
> Large packages sometimes mask each other's functions and that creates a headache, especially for teaching code, since function signatures may depend on which order packages were loaded in. One of my students proposed using the idiom
>
> <function> <- <package>::<function>
>
> ... in a preamble, when we use just a small subset of functions from a larger package. I like that idea and can't see obvious disadvantages(1).
>
> Are there subtle risks to that approach?
You might do it twice. R isn't going to complain if you have
filter <- stats::filter
# some other code here...
filter <- dplyr::filter
in your code, but the second one will overwrite the first one.
The normal way to handle this is in the NAMESPACE file, where you should
have
importFrom(stats, filter)
If you then have
importFrom(dplyr, filter)
you should get an warning:
Warning: replacing previous import ‘stats::filter’ by ‘dplyr::filter’
when loading ‘testpkg’.
Duncan Murdoch
More information about the R-help
mailing list