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
我正在尝试在 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