R:获取向量中第一个实例的索引大于变量但对于整列

R: Get index of first instance in vector greater than variable but for whole colum

我正在尝试在 data.table 中创建一个新变量。它旨在在 data.table 中取一个变量,并且对于每个观察将该变量与一个向量进行比较,并且 return 向量中第一个观察值的索引大于 [=27] 中的变量=].

例子

ComparatorVector <- c(seq(1000, 200000, 1000))
Variable <- runif(10, min = 1000, max = 200000)

对于 Variable 中的每个观察值,我想知道 ComparatorVector 中第一个观察值的索引大于 Variable 的观察值。

我玩过 min(which()),但无法通过 ComparatorVector。我也看到了 match() 函数,但除了精确匹配的索引之外,没有找到如何将它变成 return 的任何东西。

一个选项是findInterval

findInterval(Variable, ComparatorVector) +1
#[1] 190 152  99 107  38 148 114  95  53  73

或者用sapply

sapply(Variable, function(x) which(ComparatorVector > x)[1])
#[1] 190 152  99 107  38 148 114  95  53  73