2012-04-20 37 views
1

我想要「bin」的一些我以前的值的矢量內,以相鄰值之間限定的間隔之間隨機產生的數字。所以基本上,我有以下:含有101個值範圍從101到0 ř幫助:確定間隔,像素合併若干

vectorA我生成一個稱爲X隨機數。現在我想看看vectorA中相鄰的兩個數字之間的哪個區間屬於哪個區間?最後,一旦找到間隔,我就返回這兩個值。

我有一個if語句去;如果(X < vectorA [K] | X> vectorA [K + 1]),下一個for循環所以if語句可以穿過vectorA的所有增量。

我想留下來與R的休息方法了,因爲我要抓住實際倉區間值,並用它們來計算的東西。

任何建議將有所幫助。

感謝

+0

findInterval ...? – 2012-04-20 21:55:17

回答

2

正如本指出,findInterval是你的朋友。

vectorA必須按升序排列,雖然進行排序。

findRange <- function(x, v) { 
    i <- findInterval(x, v) 
    list(from=i, to=i+1L) 
} 

v <- seq(1, 100, 10) # Must be sorted in ascending order! 
x <- runif(10, 1, 100) 
findRange(x, v) 

如果您vectorA排序前高後低,你必須扭轉它和修改索引:

iRev <- findInterval(x, rev(vectorA)) 
iLow <- length(vectorA) - iRev 
iHigh <- iLow + 1L