coxreg could search for frailty and issue a warning or error if found. This returns TRUE if frailty is used in the formula argument as a function but not otherwise. That would allow implementation of a nicer message than if it were just reported as a missing function.
find_frailty <- function(e) { if (is.logical(e)) return(e) if (length(e) > 1) { if (identical(e[[1]], as.name("frailty"))) return(TRUE) for (i in 1:length(e)) if (isTRUE(Recall(e[[i]]))) return(TRUE) } FALSE } find_frailty(frailty ~ frailty) ## [1] FALSE fo <- Surv(time, status) ~ age + frailty(inst) find_frailty(fo) ## [1] TRUE On Fri, Oct 30, 2020 at 2:46 PM Göran Broström <goran.brost...@umu.se> wrote: > > My CRAN package eha depends on the survival package, and that creates > problems with innocent users: It is about the 'frailty' function > (mainly). While (after 'library(eha)') > > f1 <- coxph(Surv(time, status) ~ age + frailty(inst), data = lung) > > produces what you would expect (a frailty survival analysis), the use of > the coxreg function from eha > > f2 <- coxreg(Surv(time, status) ~ age + frailty(inst), data = lung) > > produces (almost) nonsense. That's because the survival::frailty > function essentially returns its input and coxreg is happy with that, > treats it as an ordinary numeric (or factor) covariate, and nonsense is > produced, but some users think otherwise. (Maybe it would be better to > introduce frailty in a separate argument?) > > I want to prevent this to happen, but I do not understand how to do it > in the best way. I tried to move survival from Depends: to Imports: and > adding import(survival, except = c(frailty, cluster)) to NAMESPACE. This > had the side effect that a user must qualify the Surv function by > survival::Surv, not satisfactory (similarly for other popular functions > in survival). > > Another option I thought of was to define my own Surv function as > Surv <- survival::Surv in my package, but it doesn't feel right. > It seems to work, though. > > As you may understand from this, I am not very familiar with these > issues. I have used Depends: survival for a long time and been happy > with that. > > Any help on this is highly appreciated. > > Göran > > ______________________________________________ > R-package-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-package-devel -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel