Fastest way of finding if any members of vector x fall in the range of the rows of matrix y
try sqldf:
require(sqldf) x
x 1 1 2 2 3 6 4 5
y
s e 1 1 4 2 3 5 3 8 10
sqldf("
+ select x.x + from x, y + where x.x between y.s and y.e + ") x 1 1 2 2 3 5
On Mon, Jun 27, 2011 at 5:33 AM, Salih Tuna <salihtuna at gmail.com> wrote:
Thanks a lot. That solves the problem :) best, salih On Sat, Jun 25, 2011 at 9:13 AM, Dimitris Rizopoulos < d.rizopoulos at erasmusmc.nl> wrote:
yet another solution is: v <- c(1, 2, 6, 5) w <- matrix(c(1, 4, 3, 5, 8, 10), ncol = 2, byrow = TRUE) check <- outer(w[, 1], v, "-") * outer(w[, 2], v, "-") v[which(check <= 0, arr.ind = TRUE)[, 2]] Best, Dimitris On 6/24/2011 10:05 PM, Martin Morgan wrote:
On 06/24/2011 11:12 AM, Dennis Murphy wrote:
Hi: Not much different from Peter's approach, but here's another try: v<- c(1, 2, 6, 5) w<- matrix(c(1, 4, 3, 5, 8, 10), ncol = 2, byrow = TRUE)
w
[,1] [,2] [1,] 1 4 [2,] 3 5 [3,] 8 10 f<- function(x) v[which(v>= x[1]& v<= x[2])] unlist(apply(w, 1, f)) [1] 1 2 5 If you just do the apply() part, the function will return a list of those elements of v that fall within the i-th interval.
Maybe ?> v = c(1, 2, 6, 5) ?> start = c(-Inf, 1, 3, 8) ?> end = c(-Inf, 4, 5, 10) ?> v[ v <= end[findInterval(v, start)] ] Also IRanges::findOverlaps / countOverlaps in Bioconductor v[countOverlaps(IRanges(v, v), IRanges(start, end)) != 0] http://bioconductor.org/**install <http://bioconductor.org/install> Martin
HTH, Dennis On Fri, Jun 24, 2011 at 9:52 AM, Salih Tuna<salihtuna at gmail.com> 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. 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> <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<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/> <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<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.
______________________________**________________ 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/**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 and provide commented, minimal, self-contained, reproducible code.
Jim Holtman Data Munger Guru What is the problem that you are trying to solve?