[Rd] Imports problem
Uwe Ligges
ligges at statistik.tu-dortmund.de
Mon Feb 16 15:00:20 CET 2015
On 16.02.2015 14:35, Duncan Murdoch wrote:
> On 16/02/2015 8:20 AM, Therneau, Terry M., Ph.D. wrote:
>>
>>> > I'm testing out a new version of coxme and R CMD check fails with "could not find function
>>> > ranef" (or random.effects or fixef, or anything from nlme). The NAMESPACE file has the
>>> > line below
>>>
>>> > importFrom(nlme, ranef, random.effects, fixef, fixed.effects, VarCorr)
>>>
>>> > and nlme is declared in the DESCRIPTION file as an import. I feel that I must be staring
>>> > at some obvious (but invisible to me) mistake.
>>>
>>> are you using them in (help page) examples, demos, or vignettes
>>> ?
>>>
>>> In that case, as you no longer 'Depend' on lme4, you need a
>>> require(lme4)
>>> before the corresponding code.
>>
>> Duncan and Martin,
>>
>> These are helpful comments. Let me start over and be more clear. It also helps that I'm
>> not writing this second note when I am too tired, and trying to push coxme out the door
>> before I had planned because of an interaction with one of the "survival" data sets
>> ("rats" got bigger, making one coxme test fail).
>>
>> 1. The heart of the issue is an attempt to follow the general advice of "almost no
>> depends, only imports." For the S3 methods imported from nlme I now see this as a bad
>> idea. The help page, vignettes, etc all tell the users of coxme to type "ranef(fit)" to
>> get random effects. I do not want to force them to type "nlme::ranef(fit)". I will
>> return nlme to the depends list.
>
> I believe you can import it and then export it from your own package,
> though I don't know if this will lead to other problems.
>
>> 2. I depend on the S3 generics of nlme: both of you wrote "lme4" in your response.
>> Freudian slip, or was there a reason?
>
> Not for me: I just copied it from Martin's message.
>
> I can include either, as long as it works. The
>> reason I don't define the generics myself is that it is quite possible for someone to be
>> fitting both linear and Cox mixed effects models, and if two packages define the generics
>> de novo then all methods for one of them disappear, or at least that was true in prior
>> releases of R (the last one loaded wins). Any advice? Take it as a given that survival
>> and coxme will remain firmly in the S3 camp.
>>
>> 3. Given 1 and 2, should the coxme function import all of nlme, or (as present) only the
>> methods?
>
> If you are depending on nlme, you don't need to also import it.
Well, you should import all the functionality that you actually want to
use (see Duncan's comment below). Otherwise R CMD check should yell.
Best,
Uwe
> But it
> is generally a good practice to avoid either modifying or relying on the
> search list: as people get more packages there, there are more chances
> for clashes.
>
> Duncan
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
More information about the R-devel
mailing list