On Fri, 21 Aug 2009 22:38:09 +0200, baptiste auguie <baptiste.aug...@googlemail.com> wrote:

Try this,

mystr <-"c==1"
subset(foo, eval(parse(text = mystr)) )

library(fortunes)
fortune("parse") # try several times

# I prefer this, but there is probably a better way
mycond<- quote(c==1)
subset(foo, eval(bquote(.(mycond))) )

or just
subset(foo, eval(mycond))

HTH,

baptiste

2009/8/21 Sebastien Bihorel <sebastien.biho...@cognigencorp.com>:
Dear R-users,

The following question bothered me for the whole afternoon: how can one pass
a string as the conditioning argument to subset? I tried plain mystr,
eval(mystr), expression(mystr), etc... I don't to be able to find the
correct syntax

foo <- data.frame(a=1:10,b=10:1,c=rep(1:2,5))
mystr<-"c==1"
subset(foo,c==1)
 a  b c
1 1 10 1
3 3  8 1
5 5  6 1
7 7  4 1
9 9  2 1
subset(foo,mystr)
Error in subset.data.frame(foo, mystr) :
 'subset' must evaluate to logical



Any help would be greatly appreciated.

Sebastien

______________________________________________
R-help@r-project.org 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.






--

______________________________________________
R-help@r-project.org 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.

Reply via email to