[R-pkg-devel] Building my R package: issue when importing two functions with the same name
Rainer M Krug
R@iner @ending from krug@@de
Tue Aug 7 12:22:40 CEST 2018
Probably discussed already, but what is the difference between using “::” and “ImportFrom”? I usually use ImportFrom and “::” just to make clear, where the function is coming from - is this a problem?
> On 7 Aug 2018, at 11:14, Uwe Ligges <ligges using statistik.tu-dortmund.de> wrote:
> ... and even if you are importing from several packages, you should import selective via importFrom directoves.
> If you need two functions with identical names, import at most one of them and rather use pkg::foo syntax to access them.
> Uwe Ligges
> On 07.08.2018 10:14, Iñaki Úcar wrote:
>> El mar., 7 ago. 2018 a las 9:32, Gianmarco Alberti
>> (<gianmarcoalberti using gmail.com>) escribió:
>>> I am building a R package, and I am facing an issue caused (as far as I understand) by the fact that some functions out of my package rely on two fuctions having the same name and coming from 2 different packages:
>>> When checking the package via devtools::check(), I get the following warning:
>>> Warning: replacing previous import ‘spatstat::roc’ by ‘pROC::roc’ when loading ‘GmAMisc’
>>> Note that both packages are listed among the Imports in my package's DESCRIPTION file, and that (within my functions) I have actually used spatstat::roc and pROC::roc where needed.
>> I see:
>> Depends: R (>= 3.4.0), ggplot2, ggrepel, rgdal, rgeos, raster, sp,
>> spatstat, maptools, spatialEco, dismo, pROC, kimisc, corrplot,
>> InPosition, lsr, gridExtra, caTools, plyr, classInt, coin, DescTools,
>> rWind, shape, rworldmap, cluster, RcmdrMisc, gdistance, Hmisc
>> In general, it is not a good idea to depend on so many packages,
>> because what "Depends" do is to load and attach packages. Among other
>> issues, there is one that you are already experimenting: "roc" is
>> exported both by "spatstat" and "pROC", so one masks the other.
>> The solution is to list them under "Imports" instead of "Depends". In
>> fact, my advice is to put as many packages as possible under
>> "Imports". Keep in "Depends" only those you would load and attach
>> anyway when working with your package, because you need all the
>> functions along with the ones your package exports. For the rest of
>> them, just use them as package::function to avoid this kind of
>> problem, and reexport functions selectively if needed.
>> PS: I'm taking a look at other packages and I see that you always use
>> "Depends" and never "Imports". My general advice is against this
>> practice. Moreover, from the "Writing R Extensions" manual:
>> "Field ‘Depends’ should nowadays be used rarely, only for packages
>> which are intended to be put on the search path to make their
>> facilities available to the end user (and not to the package itself):
>> for example it makes sense that a user of package 'latticeExtra' would
>> want the functions of package 'lattice' made available."
>>> I have done some web-search but I could not locate any workaround that actually fixes my issue.
>>> Do you have any suggestion on the matter?
>>> Dr Gianmarco Alberti (PhD)
>>> Research Support Officer II
>>> Department of Classics and Archaeology
>>> Faculty of Arts
>>> University of Malta
>>> (starting from 3rd September 2018)
>>> Lecturer in Spatial Forensics
>>> Department of Criminology
>>> Faculty for Social Wellbeing
>>> University of Malta
>>> [[alternative HTML version deleted]]
>>> R-package-devel using r-project.org mailing list
>> R-package-devel using r-project.org mailing list
> R-package-devel using r-project.org mailing list
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
University of Zürich
Cell: +41 (0)78 630 66 57
email: Rainer using krugs.de
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 488 bytes
Desc: Message signed with OpenPGP
More information about the R-package-devel