If "Suggests" doesn't work for you, perhaps you need to put more effort into reinventing the wheel, and depend less on other packages. --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity.
"Gábor Csárdi" <csa...@rmki.kfki.hu> wrote: >On Tue, Nov 22, 2011 at 4:27 PM, Martin Morgan <mtmor...@fhcrc.org> >wrote: >[...] >> No need to Depend:. Use >> >> Imports: Matrix >> >> plus in the NAMESPACE file >> >> importFrom(Matrix, rowSums) >> >> Why do you not want to do this? Matrix is available for everyone, >Imports: >> doesn't influence the package search path. There is a cost associated >with >> loading the library in the first place, but...? > >Not just loading, installing a package has a cost, too. Dependencies >are bad, they might make my package fail, and I have no control over >them. It's not just 'Matrix', I have this issue with other packages as >well. > >Anyway, 'Imports: Matrix' is just a workaround I think. Or is the >example in my initial mail expected to fail? Why is that? Why can I >call some functions from 'Matrix' that way and why can't I call >others? > >> I'm more into black-and-white -- it either needs Matrix or not; >apparently >> it does. > >It's a matter of opinion, I guess. I find it very annoying when I need >to install a bunch of packages from which I don't use any code, just >because some tiny bit of a package I need uses them. I would like to >spare my users from this. > >[...] >> In another message you mention >> >>> Matrix:::rowSums(W) >> Error in callGeneric() : >> 'callGeneric' must be called from a generic function or method >> >> but something else is going on -- you don't get to call methods >directly; >> you're getting Matrix::rowSums (it's exported, so no need for a :::, >see >> getNamespaceExports("Matrix")). Maybe traceback() after the error >would be >> insightful? > >Another poster suggested this, that's why I tried. It is clear that I >should not call it directly. All I want to do is having a function >like this: > >f <- function() { > if (require(Matrix)) { > res <- sparseMatrix(dims=c(5, 5), i=1:5, j=1:5, x=1:5) > } else { > res <- diag(1:5) > } > y <- rowSums(res) > res / y >} > >Setting the subjective bit, about depending or not, aside, is there >really no solution for this? The code in the manual page examples work >fine without importing the package and just loading it if needed and >available. Why doesn't the code within the package? > >Thanks for the patience, >Gabor > >> Martin >> >[...] > >-- >Gabor Csardi <csa...@rmki.kfki.hu> MTA KFKI RMKI > >______________________________________________ >R-help@r-project.org mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide >http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.