[R] Splitting the left and right hand terms of a formula

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jul 14 20:27:57 CEST 2006


Try this:

> all.vars(update(a.formula, .~0))
[1] "x"

> all.vars(update(a.formula, 0~.))
[1] "y" "z"

On 7/14/06, Daniel Gerlanc <dgerlanc at gmail.com> wrote:
> Let's say I have the following formula:
>
> a.formula <- x ~ y + z
>
> I want to extract the left and right-hand sides of the function so
> that I have two character vectors like the ones you would create using
> the following assignments:
>
> left.hand.side <- "x"
> right.hand.side <- c("y", "z")
>
> One way to do this follows:
>
> left.hand.side <- unlist(dimnames(attr(terms(a.formula), "factors"))[1])
> right.hand.side <- unlist(dimnames(attr(terms(a.formula), "factors"))[-1])
>
> Is there a better or cleaner way to do this?
>
> Thanks!
>
> Daniel Gerlanc
> Williams College '07
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>



More information about the R-help mailing list