I asked a couple of weeks ago about how to write an S4 method for sum, or
another member of the Summary group generics. This prompted an informed and
somewhat over my head email discussion off list, but for the benefit of
posterity the current answer is
1) Redefine the generic for sum as follows:
-----------
setGeneric("sum", function(x, ..., na.rm = FALSE)
standardGeneric("sum"),group="Summary",
useAsDefault = function(x, ..., na.rm = FALSE) .Internal(sum(x, ...,na.rm
= na.rm)))
-----------
2) This allows the following to work as expected
----------
setClass("Foo", representation(a="numeric"))
aFoo <- new("Foo", a=c(1,NA))
setMethod("Summary", "Foo",
function(x, ..., na.rm = FALSE) {
cat("Foo method\n")
callGeneric([EMAIL PROTECTED], ..., na.rm = na.rm)
})
sum(aFoo)
sum(aFoo, na.rm=TRUE)
----------
Without step 1) this does not work in R 1.9.0 but is reported to work in
S-Plus 6.2.
3) Repeat for each other Summary group generic you wish to write a method
for.
Thanks to Brian Ripley and John Chambers for taking the time on this.
Jonathan Swinton, Statistical Scientist, Computational Biology, Pathways,
Global Sciences and Information, AstraZeneca, Alderley Park, Cheshire SK10
4TG UK
______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html