[Rd] Another problem with next method

Gabor Grothendieck ggrothendieck at myway.com
Thu Oct 28 03:02:04 CEST 2004


Gabor Grothendieck <ggrothendieck <at> myway.com> writes:

: 
: I have another problem with NextMethod.  Not sure if its related
: to the last problem.
: 
: In this example, we have a generic called ff with methods
: for AsIs and test classes.  We call the generic with an
: object of AsIs class.  The corresponding method adds 1 to it
: and then changes the class to test followed by issuing a
: NextMethod.  However, that results in this error (using R
: 2.0.0, 2004-10-04 Windows XP):
: 
: 	Error in NextMethod("ff") : No method to invoke
: 
: Why can't NextMethod find ff.test ?
: 
: I also tried a number of variations of this including adding x = x
: to the NExtMethod argument list but none of these variations worked.
: 
: ---
: 
: ff <- function(x, ...) UseMethod("ff")
: ff.AsIs <- function(x, ...) {
: 	x <- x + 1
: 	class(x) <- "test"
: 	NextMethod("ff")
: }
: ff.test <- function(x, ...) cat(x, class(x), ..., "\n")
: ff(I(3))


Just in case there is some doubt the following example is almost
identical to the one on page 74 of the Writing Extensions manual
and gives the same error message cited above:

ff <- function(x) UseMethod("ff")
ff.data.frame <- function(x)
{
	x <- as.matrix(x)
	NextMethod("ff")
}
ff.matrix <- function(x) dim(x)
data(iris)
ff(iris)



More information about the R-devel mailing list