[R] FW: Why removing the (Intercept) from lm is done by adding -1?
S Ellison
S.Ellison at LGCGroup.com
Wed Sep 21 17:34:35 CEST 2016
> Subject: Re: [R] Why removing the (Intercept) from lm is done by adding -1?
>
> And in R, - means omit, as in
> mydataframe[, -1]
> right?
Not really, no.
In the specific interpretation of an R model formula, '-' means 'remove the _term_ following '-' ...'. As below:
> This is all in the help for formula, where it says "The - operator removes the
> specified terms".
Almost everywhere else, '-' it means negate as a unary operator and subtract as a binary operator.
In '[', '-' still means negate, not remove. It's just that '[' uses negative _numbers_ as a special case to denote omission. As a recent post noted, [-"601",] does not work.
> > Adding (or setting the (Intercept) term) zero seems more logical than
> > subtracting one, but why is there the method of subtracting one? Why
> > does subtracting one mean that the (Intercept) term disappears?
See above; '-' _in a formula_ means 'remove the following term'
Following that consistently, if there's a weirdness there, it's that ~0+x works to omit the intercept, not that ~x-1 does.
But that arises from a slightly different, but still fairly reasonable, perspective on describing the model.
S Ellison
*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}
More information about the R-help
mailing list