2017-02-09 19 views
2

每個元素時,我想矢量result其中result[i]ref使得lookup[i] > ref[result[i]查找最小值大於給定一個向量<code>lookup</code>和有序向量<code>ref</code>在列表

例如等於最小元素的索引:

ref <- c(1,5,10,15) 
lookup <- c(2.3,10.5, 17,2,6) 

result: 1,3,4,1,2 

如何在不使用for循環的情況下在R中執行此操作?

+4

'findInterval(查找,REF)'。 – Psidom

+0

@psidom就是這樣。你會添加它作爲答案,所以我可以接受它嗎? –

回答

2

由於ref矢量是有序的,則可以使用findInterval來找到區間數或指數在ref用於數字X:

ref <- c(1,5,10,15) 
lookup <- c(2.3,10.5,17,2,6) 
findInterval(lookup, ref) 
# [1] 1 3 4 1 2 
相關問題