问题描述
我正在尝试在 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