[Rd] exporting s3 and s4 methods

John Chambers jmc at r-project.org
Wed Mar 18 01:59:49 CET 2009


Thomas Lumley wrote:
> On Tue, 17 Mar 2009, John Chambers wrote:
>
>> It's important though to use the default, one argument, call to 
>> setGeneric(). Otherwise the two functions are not consistent and 
>> can't exist in the same namespace.
>
> Thanks. Does this include restricting which arguments are used for 
> dispatch? I have
> setGeneric("bigglm", signature=c("formula","data"))
> to dispatch just on the first two arguments.
That seems not to disturb anything. (It's really only the arguments 
affecting the default that would break things directly. The other 
non-defaults are a problem if multiple packages turn the same S3 
function into a generic in inconsistent ways. But here you own both the 
S3 and S4 versions.)

(R2.8.1)> foo <- function(x,y,z)UseMethod("foo")
(R2.8.1)> setGeneric("foo", signature = c("x", "y"))
[1] "foo"
(R2.8.1)> getMethod(foo) # the default
Method Definition (Class “derivedDefaultMethod”):

function (x, y, z)
UseMethod("foo")

Signatures:

target
defined
(R2.8.1)> foo at signature
[1] "x" "y"

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



More information about the R-devel mailing list