# Re: [R] Question about subset

```Thanks.

That works great!```
```
> df <- data.frame(x=c(1,1,NA,NA,2), y=c('a','a','a','b','b'),
> z=c(TRUE,FALSE,TRUE,FALSE,TRUE))
> cond1 <- 'x==1'
> cond2 <- 'x==1 & z'
> df
x y     z
1  1 a  TRUE
2  1 a FALSE
3 NA a  TRUE
4 NA b FALSE
5  2 b  TRUE
> subset(df, subset = ifelse(is.na(eval(parse(text=cond1))), TRUE,
> eval(parse(text=cond1))))
x y     z
1  1 a  TRUE
2  1 a FALSE
3 NA a  TRUE
4 NA b FALSE
> subset(df, subset = ifelse(is.na(eval(parse(text=cond2))), TRUE,
> eval(parse(text=cond2))))
x y    z
1  1 a TRUE
3 NA a TRUE

----- Original Message -----
From: "S Ellison" <s.elli...@lgcgroup.com>
To: "Sebastien Bihorel" <sebastien.biho...@cognigencorp.com>
Sent: Monday, April 9, 2018 8:31:55 AM

> Before I try to re-invent the wheel, I would like to know if one of the base
> or
> recommended packages would contain a variant of the subset function that
> would consider missing values as true.

The subset argument to subset is something that evaluates to logical - a vector
of True or False.
If you wanted to treat missing values _in that_ as TRUE, wrap it in an ifelse:

ifelse(is.na(condition), TRUE, condition)

where condition can be a logical or an expression evaluating to logical.

S Ellison

*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
and provide commented, minimal, self-contained, reproducible code.
```