[R] drop.terms and [.terms ignores intercept
    peter dalgaard 
    pdalgd at gmail.com
       
    Wed Sep 29 11:13:39 CEST 2010
    
    
  
On Sep 29, 2010, at 10:29 , Niels Richard Hansen wrote:
> The functions drop.terms and [.terms ignores if the intercept
> has been explicitly removed. Is that a deliberate feature?
Perhaps rather an unimplemented one. The root cause is that both functions use reformulate() on the "term.labels" attribute, and there is no way to specify that you want to reformulate into a no-intercept formula. On the other hand, the modeling code will happily proceed with a no-intercept model even if there is no "-1" in formula part of a terms object, e.g. 
> x <- terms(y~a+b)
> attr(x,"intercept") <- 0
> lm(x)
Call:
lm(formula = x)
Coefficients:
     a       b  
0.2263  0.4178  
> formula(x)
y ~ a + b
so I suppose that there is no really good excuse not to carry the "intercept" attribute over. As usual, with code as old as this, there is always the risk that something actually relies on current behavior. 
-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
    
    
More information about the R-help
mailing list