我得到这个代码,创建两个向量和从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