On Feb 17, 2011, at 10:36 AM, Maas James Dr (MED) wrote:


I'm using the range command to get the minimum and maximum values of an array as in

x <- range(array_y)

which gives me two values such as

[1] -2 9

I need to be able to test if this range of values includes a third value. For example I'd like to query

1) does the range of -2 to 9 include 3, answer TRUE
2) does the range of -2 to 9 include -6, answer FALSE?

All values could be negative or positive. Is there a R function that will test this or do I need to programme it? I have searched but not found one.

There is a function that handles intervals well, findInterval:

> findInterval(0, c(-2, 9))
[1] 1
> findInterval(-3, c(-2, 9))
[1] 0
> findInterval(10, c(-2, 9))
[1] 2

So:

isxInRange_y <- function(x, y) findInterval(x, range(y)) == 1

If you want to omit NA's which would otherwise poison the effort, you need to wrap the y argument in na.omit().

--
David.


Thanks

J

===============================
Dr. Jim Maas
University of East Anglia

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

David Winsemius, MD
West Hartford, CT

______________________________________________
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