Hi,

I'm having some trouble setting methods for the qr family of functions.  I
believe I have distilled my misunderstanding in the code snippet below:


foo <- function(x, ...) UseMethod("foo")

foo.default <- function(x) { }

# foo

setGeneric(name = "foo", useAsDefault = foo)

setMethod("foo", signature(x="bar"),
  function(x, ...) { }
)

setGeneric(name="foo.Q",
  function(y, ...)
    standardGeneric("foo.Q")
)

setMethod("foo.Q", signature(y="bar"),
  function(y, ...) { }
)

# QR

setGeneric(name = "qr", useAsDefault = qr)

setMethod("qr", signature(x="bar"),
  function(x, ...) { }
)

setGeneric(name="qr.Q",
  function(y, ...)
    standardGeneric("qr.Q")
)

setMethod("qr.Q", signature(y="bar"),
  function(y, ...) { }
)


If you send this to R CMD check, then it gives exactly one WARNING about
S3 consistency:


* checking S3 generic/method consistency ... WARNING
qr:
  function(x, ...)
qr.Q:
  function(y, ...)


This seems to be complaining about the fact that qr.Q dispatches on 'y'
instead of 'x'.  But there is no complaint about foo/foo.Q even though, I
believe, the only difference is a mechanical substitution of
generic/method names.

Ultimately I would like to be able to set methods for the qr family in a
way that maximally mimics R in both syntax and return.  I'm clearly doing
something wrong, but I'm not really sure how else to proceed.  Any help in
clearing up my misunderstanding here would be greatly appreciated.

Thanks.

-- 
Drew Schmidt
National Institute for Computational Sciences
University of Tennessee

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to