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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel