From maechler at stat.math.ethz.ch  Tue Feb  7 17:49:38 2006
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Tue, 7 Feb 2006 17:49:38 +0100
Subject: [Rd] match gets confused by S4 objects
In-Reply-To: <m2wtg7gpqm.fsf@ziti.local>
References: <m2hd7cjnse.fsf@ziti.local>
	<Pine.LNX.4.61.0602061925190.4469@gannet.stats>
	<17384.39853.165572.356541@stat.math.ethz.ch>
	<m2wtg7gpqm.fsf@ziti.local>
Message-ID: <17384.53154.997657.517346@stat.math.ethz.ch>

>>>>> "Seth" == Seth Falcon <sfalcon at fhcrc.org>
>>>>>     on Tue, 07 Feb 2006 07:20:17 -0800 writes:

    Seth> On  7 Feb 2006, maechler at stat.math.ethz.ch wrote:
    >> The solution has been agreed to be changing the internal
    >> representation of S4 objects making them a new SEXP (basic R
    >> "type"); and as Brian alludes to, the problem is that those in
    >> R-core that want to and are able to do this didn't have the time
    >> for that till now.

    Seth> The explanations from you are Brian are helpful, thanks.  I was aware
    Seth> that the issue is the internal representation of S4 objects and was
    Seth> hoping there might be a cheap work around until a new SEXP comes
    Seth> around.

    Seth> It seems that S4 instances are less trivial to detect than one might
    Seth> expect before actually trying it.  

    Seth> I suppose one work around is to have an S4Basic class that defines
    Seth> methods for match(), c(), etc and raises an error.  Then extending
    Seth> this class gives you some protection.

well; not so easy for c() !! {see the hoops we had to jump through to do
this for cbind() / rbind() (used in 'Matrix')}.

But it might be interesting; particularly since some have said
they'd expect a considerable performance penalty when all these basic
functions would become S4 generics...

Martin



[Rd] match gets confused by S4 objects
Martin Maechler