[R] "a"+"b"

Matthew Dowle mdowle at concordiafunds.com
Tue May 2 13:41:47 CEST 2006


Thanks for the information.  By 'not easily' it sounds like it is possible,
but how?  I'm happy to allow 'errors' like "2"+"3"="23", is that what an
erroneous use could be?

I tried the following, given the info in your reply, which works.  But is
there a way to allow "a"+"b"="ab"?
> x = "a"
> `+.character` <- function(e1, e2) paste(e1,e2, sep="")
> attr(x,"class")="character"
> x+x
[1] "aa"
>

> -----Original Message-----
> From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk] 
> Sent: 02 May 2006 12:03
> To: Matthew Dowle
> Cc: 'r-help at stat.math.ethz.ch'
> Subject: Re: [R] "a"+"b"
> 
> 
> Not easily.  There's a comment in ?Ops that for efficiency the group 
> generics only dispatch on objects with a "class" attribute: 
> otherwise you 
> could use an S3 method like
> 
> `+.character` <- function(e1, e2) paste(e1,e2, sep="")
> 
> S4 methods are built on top of S3 methods as far as internal 
> dispatch is 
> concerned, so the same comment will apply there AFAICS.
> 
> I would think that the intention was also to positively 
> discourage messing 
> with the basics of R, as if you were able to do this 
> erroneous uses would 
> likely not get caught.
> 
> On Tue, 2 May 2006, Matthew Dowle wrote:
> 
> >
> > Hi,
> >
> > Is there a way to define "+" so that "a"+"b" returns "ab" ?
> >
> >> setMethod("+",c("character","character"),paste)
> > Error in setMethod("+", c("character", "character"), paste) :
> >        the method for function '+' and signature e1="character", 
> > e2="character" is sealed and cannot be re-defined
> >> "a"+"b"
> > Error in "a" + "b" : non-numeric argument to binary operator
> >
> > Thanks!
> >
> >
> >
> > 	[[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list 
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> >
> 
> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> 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
>




More information about the R-help mailing list