如果我有排序的向量,例如
vec <- c(5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
我有
x <- 9.5
然后x
在排序行的第5到第6值之间,我想获取索引5。我该怎么做?
答案 0 :(得分:2)
以下内容将为您提供所需的结果:
x<-c(5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
findInterval(9.5,x)
> [1] 5
替代解决方案包括:
> max(which(x < 9.5))
[1] 5
答案 1 :(得分:1)
应该有多种方法可以做到这一点。一种使用which.max
which.max(vec > x) - 1
#[1] 5
这会找到第一个索引,其中vec
大于x
,然后返回一个比该索引小1的索引。
排序后,相反的方法也应该工作
which.min(vec < x) - 1
#[1] 5