find closest value in a vector based on another vector values
Andras: No. Using the a = c(1,8,9) and b = 2:3 that ** I posted before**, you get the single unique value of 1. Please stop guessing, think carefully about what you want to do, and **test** your code. -- Bert
On Tue, Jun 18, 2013 at 7:41 AM, Andras Farkas <motyocska at yahoo.com> wrote:
Bert, thanks... The values should not repeat themselves if the same a is closest to all b, so probably aruns example extended with a unique command works best? unique(a[sapply(b,function(x) which.min(abs(x-a)))]) thanks, Andras --- On Tue, 6/18/13, Bert Gunter <gunter.berton at gene.com> wrote:
From: Bert Gunter <gunter.berton at gene.com> Subject: Re: [R] find closest value in a vector based on another vector values To: "Jorge I Velez" <jorgeivanvelez at gmail.com> Cc: "Andras Farkas" <motyocska at yahoo.com>, "R mailing list" <r-help at r-project.org> Date: Tuesday, June 18, 2013, 10:07 AM Jorge: No.
a <-c(1,5,8,15,32,33.5,69) b <-c(8.5,33) a[findInterval(b, a)]
[1] 8 32 ##should be 8 33.5 I believe it has to be done explicitly by finding all the differences and choosing those n with minimum values, depending on what n you want. Note that the problem is incompletely specified. What if the same value of a is closest to several values of b? -- do you want all the values you choose to be different or not, in which case they may not be minimum? a <- c(1, 8, 9) b <- c(2,3) Then what are the 2 closest values of a to b? -- Bert On Tue, Jun 18, 2013 at 5:43 AM, Jorge I Velez <jorgeivanvelez at gmail.com> wrote:
Dear Andras, Try
a[findInterval(b, a)]
[1] 8 32 HTH, Jorge.- On Tue, Jun 18, 2013 at 10:34 PM, Andras Farkas <motyocska at yahoo.com>
wrote:
Dear All, would you please provide your thoughts on the
following:
let us say I have: a <-c(1,5,8,15,32,69) b <-c(8.5,33) and I would like to extract from "a" the two values
that are closest to
the values in "b", where the length of this vectors
may change but b will
allways be shorter than "a". So at the end based on
this example I should
have the result "f" as f <-c(8,32) appreciate the help, Andras
______________________________________________ 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.
[[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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm