Mam dwa wektory z kilku tysięcy punktów, ale uogólnione tutaj:R: znajdź najbliższy indeks
A <- c(10, 20, 30, 40, 50)
b <- c(13, 17, 20)
Jak mogę uzyskać indeksy z A
że są najbliższy do b
? Oczekiwany wynik to c(1, 2, 2)
.
wiem, że findInterval
może znaleźć pierwsze wystąpienie, a nie najbliższa, i jestem świadomy, że which.min(abs(b[2] - A))
jest coraz cieplej, ale nie mogę dowiedzieć się, jak wektorować go do pracy z długimi wektorów zarówno A
i b
.
Zwróć uwagę, że 'which.min()' zwraca tylko pierwsze dopasowanie. Mogą istnieć inne elementy, które są równie bliskie. –