Re: [R] Operator overloading

From: hadley wickham <h.wickham_at_gmail.com>
Date: Thu, 10 Jul 2008 07:51:52 -0500

On Thu, Jul 10, 2008 at 5:09 AM, Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk> wrote:
> Tine wrote:
>> Hi!
>>
>> I was just wondering is there anyway to overload operator for custom
>> class.
>> For example:
>> I have two matrices A and B with same dimensions. I want to overload
>> operator '+' with my own function.
>> Or even better can I create my own (new) operator.
>> Example:
>> A+-B where '+-' would be some function.
>>
> You can define an S3 method
>
> "+.myclass" <- function(a,b) {...}
>
> Notice that dispatch is only on the 1st argument. This is a generic
> weakness of S3 methods. The Matrix package implements similar things
> with S4 methods, but it does tend to get rather complicated.

That's not completely true is it?

> 2 * unit(2, "cm")

[1] 2*2cm
> unit(2, "cm") * 2

[1] 2*2cm

(But I'm not sure why that works)

Hadley

-- 
http://had.co.nz/

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Thu 10 Jul 2008 - 12:57:28 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 10 Jul 2008 - 13:31:52 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive