Hi, I've noted that not all `predict' methods are hidden in the namespace: > methods("predict") [1] predict.ar* predict.Arima* [3] predict.arima0* predict.glm [5] predict.HoltWinters* predict.lm [7] predict.loess* predict.mlm [9] predict.nls* predict.poly [11] predict.ppr* predict.prcomp* [13] predict.princomp* predict.smooth.spline* [15] predict.smooth.spline.fit* predict.StructTS* Non-visible functions are asterisked I'm sure there's a good reason for this, but I haven't been able to figure it out. Please enlighten me. Thanks! Henric
One reason is that you should never call those methods directly but only via the generic function predict(), and this is a way to prevent such misuse/mishaps. You can always use getAnywhere() if you want look at the code. /H On 3/16/07, Henric Nilsson (Public) <nilsson.henric at gmail.com> wrote:> Hi, > > I've noted that not all `predict' methods are hidden in the namespace: > > > methods("predict") > [1] predict.ar* predict.Arima* > [3] predict.arima0* predict.glm > [5] predict.HoltWinters* predict.lm > [7] predict.loess* predict.mlm > [9] predict.nls* predict.poly > [11] predict.ppr* predict.prcomp* > [13] predict.princomp* predict.smooth.spline* > [15] predict.smooth.spline.fit* predict.StructTS* > > Non-visible functions are asterisked > > I'm sure there's a good reason for this, but I haven't been able to > figure it out. Please enlighten me. > > Thanks! > > > Henric > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
The reason some are not hidden is historical: they were called explicitly by (contributed) package code at the time namespaces were introduced. It would be a good idea to revisit some of those decisions, but it is not a very appealing way to spend one's time. On Fri, 16 Mar 2007, Henric Nilsson (Public) wrote:> Hi, > > I've noted that not all `predict' methods are hidden in the namespace: > > > methods("predict") > [1] predict.ar* predict.Arima* > [3] predict.arima0* predict.glm > [5] predict.HoltWinters* predict.lm > [7] predict.loess* predict.mlm > [9] predict.nls* predict.poly > [11] predict.ppr* predict.prcomp* > [13] predict.princomp* predict.smooth.spline* > [15] predict.smooth.spline.fit* predict.StructTS* > > Non-visible functions are asterisked > > I'm sure there's a good reason for this, but I haven't been able to > figure it out. Please enlighten me.-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Sometimes its useful to call a method on a class other than the method indicated by the suffix of the method name and in that case one needs to call the method directly rather than via the generic. For an example, see: http://tolstoy.newcastle.edu.au/R/e2/help/07/01/9383.html On 3/16/07, Henric Nilsson (Public) <nilsson.henric at gmail.com> wrote:> Hi, > > I've noted that not all `predict' methods are hidden in the namespace: > > > methods("predict") > [1] predict.ar* predict.Arima* > [3] predict.arima0* predict.glm > [5] predict.HoltWinters* predict.lm > [7] predict.loess* predict.mlm > [9] predict.nls* predict.poly > [11] predict.ppr* predict.prcomp* > [13] predict.princomp* predict.smooth.spline* > [15] predict.smooth.spline.fit* predict.StructTS* > > Non-visible functions are asterisked > > I'm sure there's a good reason for this, but I haven't been able to > figure it out. Please enlighten me. > > Thanks! > > > Henric > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >