[R] Problem with passing a string to subset
baptiste auguie
baptiste.auguie at googlemail.com
Fri Aug 21 22:38:09 CEST 2009
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.bihorel at 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 at 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.
>
--
_____________________________
Baptiste Auguié
School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK
http://newton.ex.ac.uk/research/emag
More information about the R-help
mailing list