查找元素索引与排序向量

时间:2019-03-16 12:59:19

标签: r

如果我有排序的向量,例如

vec <- c(5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

我有

x <- 9.5

然后x在排序行的第5到第6值之间,我想获取索引5。我该怎么做?

2 个答案:

答案 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