[R] Matching pairs of values
Bert Gunter
gunter.berton at gene.com
Sun Mar 28 16:36:15 CEST 2010
Sorting is unnecesssary. If column order is unimportant, identical() is
unnecessary.
foo <- function(x,lookfor)apply(x,1,function(x)all(lookfor %in% x))))
will do. If column order is important,
apply(x,1,identical,lookfor)
will do.
Bert Gunter
Genentech Nonclinical Statistics
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of David Scott
Sent: Saturday, March 27, 2010 8:36 PM
To: Peter Ehlers
Cc: r-help at r-project.org; Berend Hasselman
Subject: Re: [R] Matching pairs of values
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
______________________________________________
R-help at 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.
More information about the R-help
mailing list