From gavin.simpson at ucl.ac.uk  Fri Aug 26 13:44:25 2011
From: gavin.simpson at ucl.ac.uk (Gavin Simpson)
Date: Fri, 26 Aug 2011 12:44:25 +0100
Subject: [Rd] methods() not listing some S3 plot methods...?
Message-ID: <1314359065.22902.12.camel@prometheus.geog.ucl.ac.uk>

Dear List,

This may be related to this email thread initiated by Ben Bolker last
month: https://stat.ethz.ch/pipermail/r-devel/2011-July/061630.html

In answering this Question on StackOverflow
http://stackoverflow.com/q/7195628/429846 I noticed that `methods()` was
not listing some S3 methods for `plot()` provided by the mgcv package.
At the time I wanted to check the development version of R as I recalled
Uwe mentioning that `plot.function` was listed by `methods()` there but
not in R2.13.x. I have now compiled the development version on two
Fedora installations and certain plot methods are still not being
listed. Details of the exact revision of R Devel are shown at the end of
this email.

As an example, consider:

> require(mgcv)
Loading required package: mgcv
This is mgcv 1.7-6. For overview type 'help("mgcv-package")'.
> methods("plot")
 [1] plot.acf*              plot.ACF*              plot.augPred*         
 [4] plot.compareFits*      plot.data.frame*       plot.decomposed.ts*   
 [7] plot.default           plot.dendrogram*       plot.density          
[10] plot.ecdf              plot.factor*           plot.formula*         
[13] plot.function          plot.gam               plot.gls*             
[16] plot.hclust*           plot.histogram*        plot.HoltWinters*     
[19] plot.intervals.lmList* plot.isoreg*           plot.lm               
[22] plot.lme*              plot.lmList*           plot.medpolish*       
[25] plot.mlm               plot.nffGroupedData*   plot.nfnGroupedData*  
[28] plot.nls*              plot.nmGroupedData*    plot.pdMat*           
[31] plot.ppr*              plot.prcomp*           plot.princomp*        
[34] plot.profile.nls*      plot.ranef.lme*        plot.ranef.lmList*    
[37] plot.shingle*          plot.simulate.lme*     plot.spec             
[40] plot.stepfun           plot.stl*              plot.table*           
[43] plot.trellis*          plot.ts                plot.tskernel*        
[46] plot.TukeyHSD          plot.Variogram*       

   Non-visible functions are asterisked

> pmeth <- methods("plot")
> grep("plot.mgcv.smooth", pmeth)
integer(0)
> getS3method("plot", "mgcv.smooth")
Error in getS3method("plot", "mgcv.smooth") : 
  S3 method 'plot.mgcv.smooth' not found
> pfun <- getAnywhere("plot.mgcv.smooth")
> str(pfun)
List of 5
 $ name   : chr "plot.mgcv.smooth"
 $ objs   :List of 1
  ..$ :function (x, P = NULL, data = NULL, label = "", se1.mult = 1, 
    se2.mult = 2, partial.resids = FALSE, rug = TRUE, se = TRUE, 
    scale = -1, n = 100, n2 = 40, pers = FALSE, theta = 30, phi = 30, 
    jit = FALSE, xlab = NULL, ylab = NULL, main = NULL, ylim = NULL, 
    xlim = NULL, too.far = 0.1, shade = FALSE, shade.col = "gray80", 
    shift = 0, trans = I, by.resids = FALSE, scheme = NULL, ...)  
 $ where  : chr "namespace:mgcv"
 $ visible: logi FALSE
 $ dups   : logi FALSE
 - attr(*, "class")= chr "getAnywhere"

Both `methods()` and `getS3method()` don't list/find this method, but
the function exists in the mgcv name space and this method will be used
via R's S3 dispatch system in `plot.gam()`.

Shouldn't this method be returned by either `methods()` or
`getS3method()`?

TIA,

Gavin

> sessionInfo()
R Under development (unstable) (2011-08-26 r56801)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
 [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods
base     

other attached packages:
[1] mgcv_1.7-6

loaded via a namespace (and not attached):
[1] grid_2.14.0        lattice_0.19-33    Matrix_0.9996875-3
nlme_3.1-102      
[5] tools_2.14.0
-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



[Rd] methods() not listing some S3 plot methods...?
Gavin Simpson