[R] Matching pairs of values

David Scott d.scott at auckland.ac.nz
Sun Mar 28 05:35:40 CEST 2010


Many thanks Peter and Berend.

I think I can make this work for my problem. Apologies for not giving an 
example: I was a bit tired and frustrated when I posted to R-help and 
only on later reflection realised that I didn't really follow the 
posting guidelines.

David

Peter Ehlers wrote:
> (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
> 


-- 
_________________________________________________________________
David Scott	Department of Statistics
		The University of Auckland, PB 92019
		Auckland 1142,    NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:	d.scott at auckland.ac.nz,  Fax: +64 9 373 7018

Director of Consulting, Department of Statistics



More information about the R-help mailing list