[R] value matching %in% for a number pair

Duncan Murdoch murdoch.duncan at gmail.com
Sun Nov 13 03:01:27 CET 2016


On 12/11/2016 8:36 PM, John wrote:
> Hi,
>
>    We can match one numerical value as follows
>> 3 %in% c(4,5)
> [1] FALSE
>> 3 %in% c(4,5,3)
> [1] TRUE
>
>    To see whether value pairs are identical,
>> identical(c(3,4), c(3,5))
> [1] FALSE
>> identical(c(3,4), c(3,4))
> [1] TRUE
>
>    Is there any way to test whether “A value pair is in a set of value
> pairs”? For example, can we test whether the pair (2,3) is identical to one
> of the pairs in the set S={(1,2), (4,3), (3,3), (2,3), (4,5)}?
>    In this case, the answer is yes because the 4th element of S is (2,3).
> Is there any simple way to code it? Thanks!

You'll have to type a long expression or write your own function for it. 
  Here's one way, if you store your set as a list:

inlist <- function(x, thelist)
   any(sapply(thelist, identical, x))

For example:

 > S <- list(c(1, 2), c(4, 3))
 > inlist(c(4, 3), S)
[1] TRUE
 > inlist(c(3, 4), S)
[1] FALSE

Duncan Murdoch



More information about the R-help mailing list