Я получил этот код, создать два вектор и для каждого элемента из a
Я хочу, чтобы получить самый близкий элемент в b
:Как получить самый близкий элемент в векторе для каждого элемента в другом векторе без дубликатов?
a = rnorm(100)
b = rnorm(100)
c = vapply(a, function(x) which.min(abs(b - x)), 1)
table(duplicated(c))
FALSE TRUE
61 39
Как вы можете видеть, этот метод является быстрым, чтобы дать много дублей, который является нормальным но я бы не хотел иметь дубликатов. Я думал об удалении от b
после того, как был выбран индекс, но я не знаю, как это сделать под vapply
.
Так быть ясно, вы ищете перестановку, 'p', такую, что' sum (abs (ab [p])) 'минимизируется? – James
ну, я думаю, вы можете так выразиться – Wicelo
Мое предположение заключается в том, что функция соединения 'data.table'' roll = "ближайшее" 'будет полезна здесь, ала http://stackoverflow.com/questions/15712826/ join-r-data-tables-where-key-values-are-not-just-equal-comb-rows-with-clo – Chase