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