Hi Davor,

To the best of my knowledge, there's only one way to use functions
from a suggested package: with require:

if (require("suggested_package")) {
  function_from_suggested_package()
} else {
  stop("suggested package not installed")
}

Unfortunately I don't think there's any way to use a suggested package
without polluting the search path.

Hadley

On Fri, Feb 22, 2013 at 6:26 PM, Davor Cubranic <cubra...@stat.ubc.ca> wrote:
> If in my package "Foo" I call a function from another package "Bar" if it's 
> available, according to R-exts, this sounds like I should include "Suggests: 
> Bar" in package Foo's description. But the manual is silent on how to treat 
> Bar's namespace. Should I import it? If so, should this be conditional or 
> unconditional? There is a thread from 2008 in which Duncan Murdoch suggests 
> trying conditionally importing a package if it's installed, with the caveat 
> "If this is allowed" 
> (http://tolstoy.newcastle.edu.au/R/e5/devel/08/10/0488.html). This appears to 
> work in current release of R, 2.15.2, but I'm still not clear if it's 
> officially allowed, much less recommended.
>
> The manual also says:
>
>> If a package only needs a few objects from another package it can use a 
>> fully qualified variable reference in the code instead of a formal import. A 
>> fully qualified reference to the function f in package foo is of the form 
>> foo::f. This is slightly less efficient than a formal import and also loses 
>> the advantage of recording all dependencies in the NAMESPACE file, so this 
>> approach is usually not recommended. Evaluating foo::f will cause package 
>> foo to be loaded, but not attached, if it was not loaded already—this can be 
>> an advantage in delaying the loading of a rarely used package.
>>
>
>
> Would this be a better solution than importing when calling into a suggested 
> package?
>
> Davor
>
>
>         [[alternative HTML version deleted]]
>
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Chief Scientist, RStudio
http://had.co.nz/

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

Reply via email to