# [R] Subsetting by a logical condition and NA's

ggrothendieck@yifan.net ggrothendieck at yifan.net
Tue Apr 23 06:40:04 CEST 2002

```subset(y,x==5)

On 22 Apr 2002 at 18:17, John Miyamoto wrote:

> I have run into a general problem with subsetting of which the following
> is a simple example.  Suppose that
>
> x <- c(5, NA, 7, 5, NA, 3)
> y <- c(1,  2, 3, 4,  5, 6)
>
> I want to extract the values of y for which x = 5, but y[x==5] yields
>
> > y[x==5]
> [1]  1 NA  4 NA
>
> I find that y[!is.na(x) & x==5] yields the desired result:
>
> > y[!is.na(x) & x==5]
> [1] 1 4
>
> but I am wondering whether there is a general way to specify a logical
> condition such that it yields TRUE when the condition is true and FALSE
> when the condition is either false or the input data is NA?  For example,
> is there a simpler way to produce the same results as y[!is.na(x) & x==5]?
>
> John
>
> --------------------------------------------------------------------
> John Miyamoto, Dept. of Psychology, Box 351525
> University of Washington, Seattle, WA 98195-1525
> Phone 206-543-0805, Fax 206-685-3157, Email jmiyamot at u.washington.edu
> Homepage http://faculty.washington.edu/jmiyamot/
> --------------------------------------------------------------------
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```