[R] convert text to exprission good for lm arguments

Gabor Grothendieck ggrothendieck at gmail.com
Thu May 3 15:11:56 CEST 2007


Try:

do.call("update", list(data.lm, subset = parse(text = subset)))

On 5/3/07, Vadim Ogranovich <vogranovich at jumptrading.com> wrote:
> Hi,
>
> I ran into a problem of converting a text representation of an expression into parsed expression to be further evaluated inside lm ().
>
> > n <- 100
> > data <- data.frame(x= rnorm (n), y= rnorm (n))
> > data. lm <- lm (y ~ x, data=data)
> >
> > ## this works
> > update(data. lm , subset=x<0)
>
> Call:
> lm (formula = y ~ x, data = data, subset = x < 0)
>
> Coefficients:
> (Intercept) x
> -0.07864094193322170023 -0.14596982635007796358
>
> >
> > ## this doesn't work
> > ## text representation of subset
> > subset <- "x<0"
> > update(data. lm , subset=parse(text=subset))
> Error in `[.data.frame`(list(y = c(-0.601925958140825, -0.111931189071517, :
> invalid subscript type
>
> What is the correct way to convert "x<0" into a valid subset argument?
>
> Thanks,
> Vadim
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list