[Rd] Declaring/importing non-exported functions [car] in another package
Duncan Murdoch
murdoch.duncan at gmail.com
Wed Jan 16 17:40:37 CET 2013
On 13-01-16 11:25 AM, Michael Friendly wrote:
> A new function in my heplots package wants to use a non-exported utility
> function in the car package,
> df.terms, but this depends on other non-exported functions.
> From the Writing R extensions manual, I thought I could do this via (in
> my NAMESPACE)
>
> importFrom(car, car:::df.terms, car:::df.terms.default, car:::is.aliased)
>
> but I get:
> ** preparing package for lazy loading
> Error : objects 'car:::df.terms', 'car:::df.terms.default',
> 'car:::is.aliased' are not exported by 'namespace:car'
> ERROR: lazy loading failed for package 'heplots'
>
> \S 1.6.1 of the manual says regarding importFrom():
> Using |foo:::f| instead of |foo::f| allows access to unexported objects.
> This is generally not recommended, as the semantics of unexported
> objects may be changed by the package author in routine maintenance.
>
> Questions:
> 1. Why doesn't this work?
I think you misread the manual. It is talking about ways to access
functions other than by using importFrom. You can use car:::df.terms in
your functions.
> 2. Is my only alternative to copy these functions to my package, also
> unexported?
Using car:::df.terms explicitly is another option.
Another possibility is for the car maintainer (John Fox) to export that
function from car.
Duncan Murdoch
More information about the R-devel
mailing list