首页 > 解决方案 > 在两个向量中查找最接近的以下数字

问题描述

这个问题似乎还没有解决R。所以,给定例如

a <- c(20, 104, 380, 388)
b <- c(16, 38, 108, 130, 200, 222, 291, 314, 384, 406, 476, 498, 568, 591)

我如何找到后面的那些b数字a?因此,这里的解决方案应该是[38 108 384 406]

请注意,ab的长度可能会有所不同。

标签: rsortingvector

解决方案


这利用了以下findInterval功能:

b[findInterval(a, b)+1]
#### [1]  38 108 384 406

这(可能还有这里建议的其他一些解决方案)需要您之前对b矢量进行排序。

您可以使用参数left.open来决定当数字相等时您想要什么行为。


推荐阅读