requireNamespace etiquette

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

requireNamespace etiquette

RKoenker
I'm trying to resolve a problem of Namespaces and probably have misunderstood something basic.
In my quantreg package the function crq() has as its first argument a formula that typically contains
something like this: Surv(y, ...) ~ foo,  where Surv is a function from the survival package which
quantreg suggests.  When this syntax is encountered in ordinary usage Surv is resolved, I believe,
because near the beginning of the crq code there is the locution:

if(!requireNamespace("survival", quietly = TRUE))
        stop("crq requires survival package to be installed")

However, when R CMD check tries to do one of the crq examples I see:

> f <- crq(Surv(y,d,type = "left") ~ x, method = "Portnoy")
Error in eval(expr, envir, enclos) : could not find function "Surv"
Calls: crq ... eval -> model.frame -> model.frame.default -> eval -> eval
Execution halted

Can someone suggest a fix?

Roger


Reply | Threaded
Open this post in threaded view
|

Re: requireNamespace etiquette

Prof Brian Ripley
On 20/02/2015 21:15, RKoenker wrote:

> I'm trying to resolve a problem of Namespaces and probably have misunderstood
> something basic.
> In my quantreg package the function crq() has as its first argument a
> formula that typically contains
> something like this: Surv(y, ...) ~ foo,  where Surv is a function from the
> survival package which
> quantreg suggests.  When this syntax is encountered in ordinary usage Surv
> is resolved, I believe,
> because near the beginning of the crq code there is the locution:
>
> if(!requireNamespace("survival", quietly = TRUE))
>          stop("crq requires survival package to be installed")
>
> However, when R CMD check tries to do one of the crq examples I see:
>
>> f <- crq(Surv(y,d,type = "left") ~ x, method = "Portnoy")
> Error in eval(expr, envir, enclos) : could not find function "Surv"
> Calls: crq ... eval -> model.frame -> model.frame.default -> eval -> eval
> Execution halted
>
> Can someone suggest a fix?

'Writing R Extensions' ยง1.1.3.1 does.  Either use survival::Surv in that
call, or if your code expects only 'Surv', have

Surv <- survival::Surv

somewhere in the environment tree where your formula is evaluated.

>
> Roger

--
Brian D. Ripley,                  [hidden email]
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel