Thanks Baptiste
The eval(parse()) combination is just what I need.
baptiste auguie 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))) )
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.