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

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

Reply via email to