我有一個關於在向量中查找索引值的問題。查找與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「操作來區別'<'從'<=' –