Sorry, I didn't explain myself clear enough. I knew about the select arg in subset(). My question was, given the expression expression(summary(x+y)), how to extract all names that will be looked up during its evaluation.
As to checking performance assumptions, you are right, in most cases the overhead is negligible, but sometimes I work with really big data sets. Thanks a lot for your help, Vadim ----- Original Message ----- From: " Gabor Grothendieck " < ggrothendieck @ gmail .com> To: " Vadim Ogranovich " < vogranovich @ jumptrading .com> Cc: r-help @stat.math. ethz .ch Sent: Friday, May 18, 2007 9:53:26 AM ( GMT-0600 ) America/Chicago Subject: Re: [R] subset arg in (modified) evalq I would check your performance assumption with an actual test before concluding such but at any rate subset does have a select argument. See ?subset On 5/18/07, Vadim Ogranovich < vogranovich @ jumptrading .com> wrote: > Thanks Gabor ! This does exactly what I wanted. > > One follow-up question, how to extract the var names, in this case y, z, > from the expression? The subset function creates a new object and this may > be expensive when the data has a lot of irrelevant collumns . So I thougth > that I could reduce this to the columns I actually need. > > Thanks, > Vadim > > > > ----- Original Message ----- > From: " Gabor Grothendieck " < ggrothendieck @ gmail .com> > To: " Vadim Ogranovich " < vogranovich @ jumptrading .com> > Cc: r-help @stat.math. ethz .ch > Sent: Friday, May 18, 2007 9:19:49 AM ( GMT-0600 ) America/Chicago > Subject: Re: [R] subset arg in (modified) evalq > > Try this: > > with(subset(data, x > 0), summary(y + z)) > > > On 5/18/07, Vadim Ogranovich < vogranovich @ jumptrading .com> wrote: > > Hi, > > > > When using evalq to evaluate expressions within a say data.frame context I > often wish there was a 'subset' argument, much like in lm () or any ather > advanced regression model. I would be grateful for a tip how to do this. > > > > Here is an illustration of what I want: > > > > n <- 100 > > data <- data.frame(x= rnorm (n), y= rnorm (y), z= rnorm (z)) > > > > # this works > > evalq ({ i <- 0<x; summary(y[i] + z[i]) }, data) > > > > # I want to do the above w/o explicit subscripting , e.g. > > myevalq (summary(y + z), subset=0<x, data) > > > > Thanks, > > Vadim > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help @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. > > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.