Re: [R] subset arg in subset(). was: converting result of substitute to 'ordidnary' expression

From: Dennis Murphy <djmuser_at_gmail.com>
Date: Fri, 25 Jun 2010 21:39:30 -0700

Hi:

On Fri, Jun 25, 2010 at 6:12 PM, Vadim Ogranovich < vogranovich_at_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_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.
>

        [[alternative HTML version deleted]]



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. Received on Sat 26 Jun 2010 - 04:44:47 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 26 Jun 2010 - 06:20:35 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive