2012-04-20 41 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