Abby, my answer was too concise. The thrust is that even if you define a method 
for 
"[<-" with signature x="matrix" and value ="Matrix", for example, it will never 
be used since "matrix" is S3. 
If instead x="someS4class" then the S4 method will be invoked.

There may be cases when changing the class of the left-hand side make sense 
(such as one subclass of "Matrix" to another) but certainly not for the base R 
vector classes.


Georgi Boshnakov


-----Original Message-----
From: Abby Spurdle <spurdl...@gmail.com> 
Sent: 11 September 2020 03:03
To: Martin Maechler <maech...@stat.math.ethz.ch>
Cc: Georgi Boshnakov <georgi.boshna...@manchester.ac.uk>; r-devel@r-project.org
Subject: Re: [Rd] more Matrix weirdness

>     > "These operators are also implicit S4 generics, but as
>     > primitives, S4 methods will be dispatched only on S4
>     > objects ‘x’."

> Yes, exactly,  very well found, Georgi!

I'm sorry Martin, but I don't understand your point here.

I'm assuming that you want the (S3) matrix, x, to be converted to an
(S4) Matrix.

However, this is not a question of method dispatch, as such.
But rather a question of type conversion (integer to numeric to complex, etc).

Specifically, can/should automatic type conversion, convert an S3 data type to 
an S4 data type, even where user-defined data types are involved?
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to