Skip to content

Unhidden predict methods

5 messages · Henric Nilsson (Public), Henrik Bengtsson, Brian Ripley +1 more

#
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:
#
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:

            

  
    
#
Den 2007-03-16 13:25, Prof Brian Ripley skrev:
Ah, I see.

In that case I'll just hide away as much as possible in the new package 
I'm working on.
Agreed.

Thanks again!


Henric
#
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: