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

问题描述

我正在尝试在 data.table 中创建一个新变量。它旨在获取 data.table 中的一个变量,并针对每个观察将该变量与一个向量进行比较,并返回该向量中大于 data.table 中的变量的第一个观察的索引。

示例

gcloud components update

对于 ComparatorVector <- c(seq(1000,200000,1000)) Variable <- runif(10,min = 1000,max = 200000) 中的每个观察,我想知道 Variable 中第一个观察的索引大于 ComparatorVector 的观察。

我玩过 Variable,但无法让它通过 min(which())。我还看到了 ComparatorVector 函数,但没有找到如何让它返回除完全匹配的索引之外的任何内容

解决方法

一个选项是 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