[R] Fastest way of finding if any members of vector x fall in the range of the rows of matrix y

Peter Ehlers ehlers at ucalgary.ca
Fri Jun 24 19:40:16 CEST 2011


On 2011-06-24 09:52, Salih Tuna wrote:
> Hi guys,
>
> let's assume i have    the following
>
>        1
> x = 2
>        6
>        5
>
>        1   4
> y = 3   5
>        8  10
>
> i want the code to report back 1, 2 and 5 from x.
> Basically it shopuld check whether each elements of x falls in the range of
> each row of x. 1 and 2 falls in between 1-4 and 5 falls in between 3-5.
> I do this with two for loops but in the case of very large list, it takes
> ages.

Probably not faster, but try:

   x <- c(1,2,6,5)
   y <- matrix( c(1,3,8,4,5,10), 3, 2 )
   ok <- vector( 'logical', length(x) )
   for( i in seq_along(x) ) ok[i] <- any( apply(y - x[i], 1, prod) <= 0 )
   x[ok]

Peter Ehlers

>
> best,
> salih
>
>
> On Fri, Jun 24, 2011 at 4:12 PM, Dennis Murphy<djmuser at gmail.com>  wrote:
>
>> Hi:
>>
>> That leaves open several possibilities. Could you please supply a
>> small, reproducible example (i.e., one that someone can copy and paste
>> into an R session) that illustrates the problem along with the
>> solution you expect?
>>
>> TIA,
>> Dennis
>>
>> On Fri, Jun 24, 2011 at 2:30 AM, Salih Tuna<salihtuna at gmail.com>  wrote:
>>> Hi Dimitris,
>>> Thanks for your reply. But this is not exactly what i am after. I want to
>>> find the probes that falls into certain regions. In your solution it will
>>> ignore the second probe if it falls into the same region as the first
>> one.
>>> Is there any vector trickb uilt in R to find whether probes fall into
>>> certain regions?
>>> best,
>>> salih
>>>
>>> On Fri, Jun 24, 2011 at 10:23 AM, Dimitris Rizopoulos<
>>> d.rizopoulos at erasmusmc.nl>  wrote:
>>>
>>>> One approach is the following:
>>>>
>>>> x<- rnorm(5)
>>>> y<- matrix(rnorm(5*2), 5, 2)
>>>>
>>>> check<- y - x
>>>> check[, 1] * check[, 2]<  0
>>>>
>>>>
>>>> I hope it helps.
>>>>
>>>> Best,
>>>> Dimitris
>>>>
>>>>
>>>>
>>>> On 6/24/2011 10:57 AM, Salih Tuna wrote:
>>>>
>>>>>   Hi All,
>>>>> What is the fastest way of finding if any members of vector x fall in
>> the
>>>>> range of the rows of matrix y?
>>>>> I do not want to use two for loops as this will take forever.
>>>>> Any help will be appreciated,
>>>>> best,
>>>>> salih
>>>>>
>>>>>         [[alternative HTML version deleted]]
>>>>>
>>>>> ______________________________**________________
>>>>> R-help at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/**listinfo/r-help<
>> https://stat.ethz.ch/mailman/listinfo/r-help>
>>>>> PLEASE do read the posting guide http://www.R-project.org/**<http://www.r-project.org/**>
>>>>> posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>
>>>>>
>>>> --
>>>> Dimitris Rizopoulos
>>>> Assistant Professor
>>>> Department of Biostatistics
>>>> Erasmus University Medical Center
>>>>
>>>> Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
>>>> Tel: +31/(0)10/7043478
>>>> Fax: +31/(0)10/7043014
>>>> Web: http://www.erasmusmc.nl/**biostatistiek/<
>> http://www.erasmusmc.nl/biostatistiek/>
>>   >>
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> 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<http://www.r-project.org/posting-guide.html>
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> 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