我有一个关于在向量中查找索引值的问题。查找与R中的值最接近的索引
比方说,我有一个向量如下:
vector <- c(1,2,4,6,8,10)
而且,让我们说我有值“5”。我想在“向量”中找到最大索引,使其小于或等于值5.在上例中,此索引将为3(因为4小于或等于5)。类似地,如果代替我有一个载体如:
vector <- c(1,2,4,5,6,8,10)
然后如果我找到大于或等于5以下的值,该指数将现在是4代替3.
然而,我还想先找到和最后这个指标发生的时间。例如,如果我有一个载体如:
vector <- c(1,1,2,2,4,5,5,5,5,6,8,10)
然后第一次发生这种索引将是6和此指数发生最后一次将9.
是否有一个短,单线方法,这将允许我执行此任务?到目前为止,我一直在使用函数max(which(....)),但是我发现这种方法对于大型数据集来说效率极低,因为它会直接列出数百/数千个值,所以我想找到一个如果可能的话,更有效的方法可以放在一条线上。
在此先感谢。
如果对'vector'进行排序,请参阅'?findInterval' - 用“left.open = TRUE”调用一次,用“left”调用一次。open = FALSE“应该给出两个索引(加上一些”if“操作来区别'<'从'<=' –