[R] Matching pairs of values

Peter Ehlers ehlers at ucalgary.ca
Sat Mar 27 15:14:49 CET 2010


(Sorry, I think that I just hit a wrong button and managed
to send a non-reply.)

I think that David might have meant that the column order of the
numbers in lookfor is unimportant. In that case, a simple fix would
be either to check both lookfor and rev(lookfor) (since the
matrix is nX2) or to sort before testing:

  vtest <- function(x, lookfor){
              any(apply(x, 1, function(v)
                      {identical(sort(v), sort(lookfor))}))}

  -Peter Ehlers


On 2010-03-27 2:46, Berend Hasselman wrote:
>
>
> David Scott-6 wrote:
>>
>> I am sure someone can come up with a clever way of doing what I want---I
>> don't seem to be able to.
>>
>> I want to check if a pair of numbers occurs as one of the rows of an n
>> by 2 matrix. If I was only checking whether a single number was in a
>> vector of numbers I would use %in% but I can't see how to generalize to
>> this case.
>>
>
> Would this help?
>
> vtest<- function(x, lookfor) any(apply(x,1, function(v)
> identical(v,lookfor)))
>
>> ma<- matrix(c(2,3,1,5,7,3),ncol=2)
>> ma
>       [,1] [,2]
> [1,]    2    5
> [2,]    3    7
> [3,]    1    3
>> vtest(ma,c(3,7))
> [1] TRUE
>> vtest(ma,c(1,7))
> [1] FALSE
>
> Berend

-- 
Peter Ehlers
University of Calgary



More information about the R-help mailing list