查找大于列表中每个元素的最小值



给定一个向量lookup和一个有序向量ref,我想要一个向量result,其中result[i]等于ref中最小元素的索引,这样lookup[i] > ref[result[i]

例如:

ref <- c(1,5,10,15)
lookup <- c(2.3,10.5, 17,2,6)
result: 1,3,4,1,2

如何在不使用 for 循环的情况下在 R 中执行此操作?

由于ref向量是有序的,因此您可以使用findInterval来查找数字 x 的区间 ref 中的数字或索引

ref <- c(1,5,10,15)
lookup <- c(2.3,10.5,17,2,6)
findInterval(lookup, ref)
# [1] 1 3 4 1 2

最新更新