[Rd] methods() not listing some S3 plot methods...?
Martin Morgan
mtmorgan at fhcrc.org
Fri Aug 26 16:06:49 CEST 2011
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
More information about the R-devel
mailing list