On Jan 17, 2010, at 12:30 PM, Andreas Wittmann wrote:
Thank you very much for your quick answers.
Sorry, but i forgot to explain i want to find the closest and
smaller element for each entry, so ind1[3] is smaller as 11 and
close to 11, ind1[2] is smaller as 5 and close to 5 and ind1[1] is
smaller than 3 and close to 3.
Then your code is wrong. You need better logic prior to applying th
which.min AND you need also to use the which min result as an index to
something.
best regards
Andreas
On Jan 17, 2010, at 11:00 AM, Andreas Wittmann wrote:
Dear R-users,
i have a simple problem maybe, but i don't see the solution. i
want to find the entry-wise closest element of an vector compared
with another.
ind1<-c(1,4,10)
ind2<-c(3,5,11)
for (i in length(ind2):1)
{
print(which.min(abs(ind1-ind2[i])))
}
for ind2[3] it should be ind1[3] 10, for ind2[2] it should be
ind1[2] 4 and for ind2[1] it should be ind1[1] 1. but with the for-
loop above i get ind1[3], ind1[2] and ind1[2].
any suggestions are quite welcome.
You are failing to use the indices that which.min is providing.
(And I think the closest in ind1 to ind2[1] is not 1, but rather 4,
so see if this looks more responsive to your expectations:
> for (i in length(ind2):1)
+ {
+ print( ind1[which.min(abs(ind1-ind2[i]))] )
+ }
[1] 10
[1] 4
[1] 4
best regards
Andreas
______________________________________________
R-help@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.
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@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.