On Nov 7, 2012, at 4:04 AM, Mauricio Zambrano-Bigiarini wrote:

> Dear R developers,
> 
> Taking advantage of the yesterday discussion about the use of 
> Depends/Import/Suggests/Enhances, I would like to add a related question.
> 
> Let's assume, in the DESCRIPTION file of my package foo0, I have:
> 
> Depends: foo1
> Imports: foo2
> 
> while in the NAMESPACE file of my package I have
> 
> importFrom("foo2", f2)
> 
> 
> and within my package I use the following two external functions:
> 
> f1, from package foo1
> f2, from package foo2
> 
> 
> If I want to use the two previous functions within a function of my package 
> foo0, is it correct to call them as follow ( assuming 'x' is the only 
> argument of 'f1' and 'f2'):
> 
> f1(x)
> foo2::f2(x)
> 
> OR should I use
> 
> foo1::f1(x)
> f2(x)
> 
> OR
> 
> f1(x)
> f2(x)
> 

Yes, this one. You have imported f2 so the whole point of that is that it will 
be inserted as "f2" into your imports environment, so you want to use it that 
way. When you use foo2:: you are skipping over imports and addressing the 
namespace of foo2 directly which sort of defeats the purpose (and is slower).

As for f1, you have attached the package so it is available. I would not use 
foo1:: for the same reason as above, but there is a risk that it may get 
clobbered since the call will go through the search path so you may not get f1 
from foo1 necessarily - this may or may not be a good thing depending on your 
intentions. You could import it via import(foo1) to make sure you don't need to 
go through the search path - that's what I would do if I don't intend 
overrides. (Whether you want to use Depends or Imports in that case is related 
to what you intend for the user to see as I was saying in my last comment - if 
I expect users to use foo1 as well, I would use Depends, otherwise Imports is 
good enough.)


> OR
> 
> something else (the correct way of doing it in R) ?
> 
> 
> 
> Finally, can I use the following call in the body of a function of my package 
> foo0:
> 
> foo3::f3(x)
> 
> without declaring the package 'foo3' in the Imports section of my DESCRIPTION 
> file ?
> 

No, it has to be at least in Enhances or Suggests (see R-exts 1.1.1).

Cheers,
Simon


> 
> Thanks in advance for your help,
> 
> 
> Mauricio Zambrano-Bigiarini
> 
> -- 
> =================================================
> Water Resources Unit
> Institute for Environment and Sustainability (IES)
> Joint Research Centre (JRC), European Commission
> TP 261, Via Enrico Fermi 2749, 21027 Ispra (VA), IT
> webinfo    : http://floods.jrc.ec.europa.eu/
> =================================================
> DISCLAIMER:\ "The views expressed are purely those of th...{{dropped:11}}
> 
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> 

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to