R:获取向量中第一个实例的索引大于变量,但用于整个列
我正在尝试在data.table中创建一个新变量。它旨在获取data.table中的一个变量,并针对每个观察值将该变量与向量进行比较,然后返回向量中第一个观察值的索引,该索引大于data.table中的变量 示例R:获取向量中第一个实例的索引大于变量,但用于整个列,r,loops,data.table,match,sequencing,R,Loops,Data.table,Match,Sequencing,我正在尝试在data.table中创建一个新变量。它旨在获取data.table中的一个变量,并针对每个观察值将该变量与向量进行比较,然后返回向量中第一个观察值的索引,该索引大于data.table中的变量 示例 ComparatorVector <- c(seq(1000, 200000, 1000)) Variable <- runif(10, min = 1000, max = 200000) ComparatorVector一个选项是findInterval findInt
ComparatorVector <- c(seq(1000, 200000, 1000))
Variable <- runif(10, min = 1000, max = 200000)
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
非常感谢你的帮助!关于如何处理比较器向量中高于最后一个变量的变量,有什么建议吗?@user9504090我没听清你的问题。我试图根据帖子中的描述来回答这个问题。是的。你说得对。你所提供的应该有用。我的数据不限于最高值ComparatorVector,我想知道如何处理高于该值的观察值,但可以重新定义NA输出。@user9504090您可以用NA
替换,因为我仍然不清楚您想要实现我的数据的逻辑(我在上面称之为Variable
)实际上包含的观测值大于200000(我在上面的ComparatorVector
中定义的上限).我只是想知道如何处理这些情况下您的方法的结果。但是,正如您所说,我也意识到:解决方案应该只是替换您的方法的结果,而这些结果是不正确的。