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))
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)
Maybe Matching Threads
- two small wishes (with code sugegstions) for R-core
- xftrm is more than 100x slower for AsIs than for character vectors
- Do *not* pass '...' to NextMethod() - it'll do it for you; missing documentation, a bug or just me?
- NextMethod
- The object argument of NextMethod.