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. 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@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel