[R] convert text to exprission good for lm arguments

Vladimir Eremeev wl2776 at gmail.com
Thu May 3 15:16:23 CEST 2007



Vadim Ogranovich 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? 
> 

update(data.lm,subset=eval(parse(text=subset)))
-- 
View this message in context: http://www.nabble.com/convert-text-to-exprission-good-for-lm-arguments-tf3686309.html#a10304608
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list