我得到這個代碼,創建兩個向量和從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 2014-09-24 10:51:11
以及我想你可以這樣說 – Wicelo 2014-09-24 10:52:17
我的猜測是'data.table'的連接函數'roll =「nearest」''在這裏很有用,ala http://stackoverflow.com/questions/15712826/ join -r-data-tables-where-key-values-are-not-exactly-equal-combine-rows-with-clo – Chase 2014-09-24 10:52:19