Hi:

On Fri, Jun 25, 2010 at 6:12 PM, Vadim Ogranovich <
vogranov...@jumptrading.com> wrote:

> Dear R users,
>
> Please disregard my previous post "converting result of substitute to
> 'ordidnary' expression". The problem I have has nothing to do with
> substitute.
>
> Consider:
>
> > dat <- data.frame(x=1:10, y=1:10)
>
> > subsetexp <- expression(5<x)
>

> class(subsetexp)
[1] "expression"


> > ## this does work
> > subset(dat, eval(subsetexp))
>    x  y
> 6   6  6
> 7   7  7
> 8   8  8
> 9   9  9
> 10 10 10
>
> eval(subsetexp)
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
>
>
> > ## and so does this
> > subset(dat, 5<x)
>    x  y
> 6   6  6
> 7   7  7
> 8   8  8
> 9   9  9
> 10 10 10
>

> 5 < x
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE

>
> > ## but this doesn't work
> > subset(dat, subsetexp)
> Error in subset.data.frame(dat, subsetexp) :
>  'subset' must evaluate to logical
>
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

>
> Why did the last expression fail and why it worked with eval()?
>

subsetexp is an object of class expression, whereas the second argument of
subset()
expects a logical [vector]. As shown above, both 5 < x and eval(subsetexp)
evaluate to
logical vectors.

HTH,
Dennis

>
> Thank you very much for your help,
> Vadim
>
> Note: This email is for the confidential use of the named addressee(s) only
> and may contain proprietary, confidential or privileged information. If you
> are not the intended recipient, you are hereby notified that any review,
> dissemination or copying of this email is strictly prohibited, and to please
> notify the sender immediately and destroy this email and any attachments.
>  Email transmission cannot be guaranteed to be secure or error-free.  Jump
> Trading, therefore, does not make any guarantees as to the completeness or
> accuracy of this email or any attachments.  This email is for informational
> purposes only and does not constitute a recommendation, offer, request or
> solicitation of any kind to buy, sell, subscribe, redeem or perform any type
> of transaction of a financial product.
>
> ______________________________________________
> 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]]

______________________________________________
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