[Rd] more Matrix weirdness
Georgi Boshnakov
georg|@bo@hn@kov @end|ng |rom m@nche@ter@@c@uk
Fri Sep 11 11:18:54 CEST 2020
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 <spurdle.a using gmail.com>
Sent: 11 September 2020 03:03
To: Martin Maechler <maechler using stat.math.ethz.ch>
Cc: Georgi Boshnakov <georgi.boshnakov using manchester.ac.uk>; r-devel using 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?
More information about the R-devel
mailing list