Rprof and setMethod conflict (PR#1949)

a311876@fmr.com a311876@fmr.com
Mon, 26 Aug 2002 17:30:21 +0200 (MET DST)

Full_Name: Kevin C. Bartz
Version: 1.5.1
OS: Solaris 2.6
Submission from: (NULL) (

A while ago, I noticed this oddity about R profiling and setMethod.

First, I "test out" Rprof.

> require(methods)
Loading required package: methods 
[1] TRUE
> Rprof("test.out")
> data.frame("a")
1    a
> Rprof(NULL)

So far, so good. Next, I define myClass.

> setClass("myClass", representation(mySlot = "numeric"))
[1] "myClass"
> setMethod("as.data.frame", signature(x = "myClass"),
+           function(x, row.names, optional) { "as.data.frame for myClass" })
Creating a new generic function for "as.data.frame" on 
element 1 of the search path 
[1] "as.data.frame"

Again, everything is fine. I've expanded as.data.frame to accept objects of
class myClass. Now, let's try the standard data.frame("a") again:

> data.frame("a")
1    a

Still, no problems. But after I start R profiling, problems arise:

> Rprof("test2.out")
> data.frame("a")
Error in standardGeneric("as.data.frame") : 
	UseMethod used in an inappropriate fashion

It seems that I can no longer use the standard method for as.data.frame in an R
profiling sequence once I've defined a new method for it. However, I CAN use the
standard as.data.frame method when I'm NOT R profiling.

I know I've brought this up before, but I thought it was appropriate also to log
this bug in a more formal manner.



> R.version
platform sparc-sun-solaris2.6
arch     sparc               
os       solaris2.6          
system   sparc, solaris2.6   
major    1                   
minor    5.1                 
year     2002                
month    06                  
day      17                  
language R                   

r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch