如何为另一个向量中的每个元素获取向量中最接近的元素而不重复?

维塞洛

我得到了这段代码,该代码创建了两个向量,对于每个元素,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

詹姆士

您要获得的最接近的匹配是对向量进行排序,然后将它们配对。下面的排列b应允许您执行此操作。

p <- order(b)[order(order(a))] # order on b and then back transform the ordering of a

sum(abs(a-b[p]))
[1] 20.76788

显然,允许重复确实使事情变得更加紧密:

sum(abs(a-b[c]))
[1] 2.45583

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Clojure:如何在另一个向量中获取向量的元素

向量化为另一个数组中的每个元素在数组中找到最接近的值

在另一个数组的特定列中查找数组中最接近的元素

在R中获取向量中每个元素的一个实例的函数

获取向量中每个运行的最后一个元素的索引

如何为每个元素获取mxn矩阵中最接近的r个元素

如何找到一个向量中与另一个向量最接近(最近)的值?

如何从c ++中的另一个类获取向量

计算向量中的值少于另一个向量中的每个元素

如何基于另一个向量的值范围获取向量的值范围?

对于SQL中最后一个表中的每个元素,如何返回表中的实体的值,该值小于但最接近另一个表中的值?

向量的每个元素乘以另一个向量的每个元素

如何将向量的每个元素的幂提高到另一个向量的每个元素的幂?

用另一个数组中最接近的值替换numpy数组中的元素

循环以删除向量的重复元素并添加另一个向量的对应元素

使元素向量小于另一个向量的每个元素

如何删除 Rust 中另一个向量中出现的向量元素?

如何从另一个向量的另一个第一个元素减去向量中的第一个元素?

如何创建一个向量来指示一个向量的元素与另一个向量中的任何元素之间的匹配?

如何通过接近 React 测试库中的另一个元素来获取元素

推力访问向量元素的另一个向量

向量元素是另一个向量Matlab的索引

长度为N的向量以及来自另一个向量的元素(重复)

将向量的每个元素添加到另一个向量

将向量与另一个向量的每个元素进行比较

根据另一个向量中的元素过滤/复制一个向量

获取向量的最后一个元素并将其推到相同的向量

从特定的第一个元素获取向量对的第二个元素

如何从另一个相同的向量中替换一个元素,但另一个向量不会改变?