gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:00:39 25 4
gpt4 key购买 nike

我得到了这段代码,它从 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

关于r - 如何为另一个向量中的每个元素获取向量中最接近的元素而没有重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com