Hi,
i have used S4 classes to implement a unified access to random number generators
(package rstream on CRAN).
I have used a construct to allow optional arguments:
if(!isGeneric("rstream.sample"))
setGeneric("rstream.sample", function(stream,...)
standardGeneric("rstream.sample"))
setMethod("rstream.sample", c("rstream","numeric"),
function(stream,n=1) { ... [ code ] ... } )
Thus if rs is an instance of an rstream object one can a random
sample of size 10 using
rstream.sample(rs, 10)
for a sample of size 1 one can use equivalently
rstream.sample(rs,1)
rstream.sample(rs)
however, with R-devel the above construct does not work any more, due to
more stringent checkings. It can be fixed by replacing it by
if(!isGeneric("rstream.sample"))
setGeneric("rstream.sample", function(stream,n)
standardGeneric("rstream.sample"))
setMethod("rstream.sample", c("rstream","numeric"),
function(stream,n=1) { ... [ code ] ... } )
then rstream.sample(rs) does not work any more.
Is there still a way to allow optional arguments for methods of
S4 classes?
Josef
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel