From mcintosh at research.telcordia.com  Sat Aug 18 00:17:16 2007
From: mcintosh at research.telcordia.com (Allen McIntosh)
Date: Fri, 17 Aug 2007 18:17:16 -0400
Subject: [Rd] Overriding S4 methods in an installed package
Message-ID: <200708172217.l7HMHG6a025509@mcintosh.research.telcordia.com>

Is it possible to override S4 methods in an installed package?
The naive

library("pkg")
setMethod("foo", signature(obj = "bar"),
        function(obj , x, y) { new definition }
	, where="package:pkg")


results in the error

Error in setMethod("foo", signature(obj = "bar"), function(obj,  :
        the environment "pkg" is locked; cannot assign methods for function "foo"

(This is from R 2.5.1 on Fedora Core 5, if that matters)

Background:  A colleague claims to have found an error in a package.
He and I would prefer to do some experimentation before contacting
the authors.  Subclassing is the "correct" way to do this, and I
expect we will eventually subclass for other reasons, but I was
wondering if an override was possible and easier.



[Rd] Overriding S4 methods in an installed package
Allen McIntosh