给定一个向量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