On Sun, 21 Mar 2010, Albert-Jan Roskam wrote:

Hi,

Is eval always used in conjunction with parse? Based on other languages, I'd 
expect the expression already to work without the use of parse(), but indeed it 
doesn't, or at least not as intended. Just a newbie question..

parse() turns a character string into R code, and eval() evaluates R code.

parse() usually requires eval(), because there's rarely much point parsing a 
string if you aren't going to evaluate it, but eval() usually doesn't require 
parse().  That is, most uses of eval() are not on strings but on expressions.

In your case it is not clear whether someone else hands you a condition in 
string form, in which care parse() is necessary, or whether you build it up 
your self, in which case parse() is not necessary, and eval() may not be 
necessary.

        -thomas


Cheers!!

Albert-Jan



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the face of ambiguity, refuse the temptation to guess.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--- On Sun, 3/21/10, jim holtman <jholt...@gmail.com> wrote:

From: jim holtman <jholt...@gmail.com>
Subject: Re: [R] using a condition given as string in subset function - how?
To: "Mark Heckmann" <mark.heckm...@gmx.de>
Cc: r-help@r-project.org
Date: Sunday, March 21, 2010, 2:33 AM

I know that if you have to resort to 'parse(text=...)', you should look for
another way (it is a 'fortune'), but it is getting late, and at least it
works:

eval(parse(text="subset(df, A==1 & B==1)"))
?? A B
1 1 1


On Sat, Mar 20, 2010 at 9:09 PM, Mark Heckmann <mark.heckm...@gmx.de> wrote:

df <- data.frame(A=c(1,2), B=c(1,1))

I have a string containing a condition for a subset function, like:
conditionAsString <- paste(names(df), df[1,], sep="==", collapse=" & ")
?? > conditionAsString
?? > "A==1 & B==1"

Now I want to use this string in the subset call, like

subset(df, conditionAsString)

I do not exactly now how to combine substitute, expression, parse and
so on to get what I want, which would be:

subset(df, A==1 & B==1)

but using the string conditionAsString.

Thanks,
Mark
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Mark Heckmann
Blog: www.markheckmann.de
R-Blog: http://ryouready.wordpress.com





?? ?? ?? ?? [[alternative HTML version deleted]]


______________________________________________
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<http://www.r-project.org/posting-guide.html>
and provide commented, minimal, self-contained, reproducible code.




--
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?

?????? [[alternative HTML version deleted]]


-----Inline Attachment Follows-----

______________________________________________
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.




        [[alternative HTML version deleted]]



Thomas Lumley                   Assoc. Professor, Biostatistics
tlum...@u.washington.edu        University of Washington, Seattle

______________________________________________
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