On 08/26/2011 04:44 AM, Gavin Simpson wrote:
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.

Hi Gavin --

In the mgcv NAMESPACE, the methods is not registered with S3method (which would have made it appear with a *) and is not export'ed; the author of the package apparently intends that it be strictly internal to the package. Dispatch works within the package name space, but not outside, e.g., a=list; class(a) = "mgcv.smooth"; plot(a) ends up at plot.default.

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

It looks like the cog that has changed between release and devel is the addition of export(plot.function) and S3method(plot, "function") to the NAMESPACE of graphics.

Martin

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


--
Computational Biology
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N. PO Box 19024 Seattle, WA 98109

Location: M1-B861
Telephone: 206 667-2793

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to