>>>>> Robin Hankin <rk...@cam.ac.uk> >>>>> on Wed, 10 Nov 2010 09:53:30 +0000 writes:
> Hello everyone. R-2.12.0, suse linux 11.3. > I am debugging a package that uses S4 methods > and R CMD check gives the following warning: >> Warning in methods::findMethods(g, env) : >> non-generic function 'mdm' given to findMethods() >> See the information on DESCRIPTION files in the chapter 'Creating R >> packages' of the 'Writing R Extensions' manual. > I don't see anything obvious in that part of the R-exts but > FWIW, here is my DESCRIPTION file: >> Package: multivator >> Type: Package >> Title: A multivariate emulator >> Version: 1.0-1 >> Depends: R(>= 2.10.0), emulator, methods, utils >> Date: 2009-10-27 >> Author: Robin K. S. Hankin >> Maintainer: <hankin.robin_nospamAT_gmail.com> >> Description: A multivariate generalization of the emulator package >> License: GPL-2 >> LazyLoad: yes > I think that the lines in question in my package are: >> setClass("mdm", # "mdm" == "multivariate design matrix" >> representation = representation( >> xold = "matrix", >> types = "factor" >> ) >> ) >> >> >> setGeneric("mdm",function(xold,types){standardGeneric("mdm")}) >> setMethod("mdm",signature("matrix","factor"),function(xold, types){ >> new("mdm", xold=xold, types=types) >> } ) > which appear to execute without warning on a virgin console. In the > package, there are three > or four other S4 classes which are on the same footing as the mdm class, > but do not appear to generate a warning from R CMD check. > The same happens AFAICS on R-2.13, 53543 > Can anyone advise on how to deal with the warning? It is probably simply the *order* of your R/*.R files which matters: The setGeneric() has to come before all its setMethod()s. A maintenance-intensive solution to the problem is to use a 'Collate:' field in your DESCRIPTION. A much simpler approach is what we've done in the Matrix package: use R/AllClasses.R and R/AllGenerics.R to put all setClass(.) and all setGeneric(.) calls, respectively. (and ensure not to use other file names that collate *before* 'All*' in some locales). Martin > thank you > Robin > -- > Robin K. S. Hankin > Uncertainty Analyst > University of Cambridge > 19 Silver Street > Cambridge CB3 9EP > 01223-764877 > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel