Just like any other S4 method: setMethod("+", c("track", "track"), function(e1, e2) new("track", x=c([EMAIL PROTECTED], [EMAIL PROTECTED]), y=c([EMAIL PROTECTED],[EMAIL PROTECTED])))
If you want to write a group generic for the S4 Ops group, you do it very like S3. There are worked examples in 'S Programming' (that at least at one point worked in R). On Fri, 25 Aug 2006, Robin Hankin wrote: > Hi > > I'm trying to implement S4 methods in a package, and I am having > difficulty defining "+" to do what I want. > > In the Green Book, there is a discussion of a "track" object, > > setClass("track", representation(x="numeric", y="numeric")) > > OK. > > track1 <- new("track",x=c(1,4,6),y=c(10,11,12)) > track2 <- new("track",x=c(2,5),y=c(100,101)) > > > What I want to do is to define "+" for track object so that if > > track3 <- track1 + track2 > > has [EMAIL PROTECTED] == c(1,2,4,5,6) > and > [EMAIL PROTECTED] = c(10,100,11,101,12) > > maybe adding a track object to a scalar would shift the values of the > x slot. > > The algorithm itself is no problem...but what is the S4 equivalent to > the S3 technique of writing an Ops.track() function that tells > R what "+" means? > > > > > > > > > > -- > Robin Hankin > Uncertainty Analyst > National Oceanography Centre, Southampton > European Way, Southampton SO14 3ZH, UK > tel 023-8059-7743 > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel