Rhelpers: How do I get R to evaluate a string, as if it was an R statement, e.g.: a=3 b=2 operator="-" statement_string=paste(a,operator,b,sep="") --j
Hello Jonathan, You can use eval() and parse(), although there may be better ways of getting to your end goal (assuming you have not inherited a series of character strings held in objects that should be run as commands). At any rate, this works: a <- 3 b <- 2 operator <- "-" statement_string <- paste(a, operator, b, sep="") eval(parse(text = statement_string)) Best regards, Josh On Thu, Jul 1, 2010 at 2:54 PM, Jonathan Greenberg <greenberg at ucdavis.edu> wrote:> Rhelpers: > > How do I get R to evaluate a string, as if it was an R statement, e.g.: > > a=3 > b=2 > operator="-" > statement_string=paste(a,operator,b,sep="") > > --j > > ______________________________________________ > 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. >-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/
On Jul 2, 2010, at 2:05 AM, Joshua Wiley wrote:> Hello Jonathan, > > You can use eval() and parse(), although there may be better ways of > getting to your end goal> do.call(operator, list(a,b)) [1] 1> (assuming you have not inherited a series of > character strings held in objects that should be run as commands). At > any rate, this works: > > a <- 3 > b <- 2 > operator <- "-" > statement_string <- paste(a, operator, b, sep="") > eval(parse(text = statement_string)) > > Best regards, > > Josh > > > On Thu, Jul 1, 2010 at 2:54 PM, Jonathan Greenberg > <greenberg at ucdavis.edu> wrote: >> Rhelpers: >> >> How do I get R to evaluate a string, as if it was an R statement, >> e.g.: >> >> a=3 >> b=2 >> operator="-" >> statement_string=paste(a,operator,b,sep="") >> >> --jDavid Winsemius, MD West Hartford, CT