查找峰的最近邻居对的索引

时间:2018-06-28 12:12:50

标签: r nearest-neighbor

我想知道是否存在一种更直接的方法来找到向量v中在峰值p之前和之后(值等于或等于{{1)的最近邻居)的位置}}。

我有向量a,峰值v和值p

a

v <- c(4,7,1,4,12,10,9,6,2,8) p <- 12 a <- 3 p的最近邻居,应该等于或等于v

a

nn <- c(4,2) nn的位置应为

v

2 个答案:

答案 0 :(得分:2)

> tail(sort(v[v-a < 0]), 1)
[1] 2
> head(sort(v[v-a > 0]), 1)
[1] 4

答案 1 :(得分:1)

我不确定您想如何使用该峰,但我认为您正在寻找的是这样的东西:

ppos <- which.min(abs(v - p))
dis <- abs(v - a)
output<- c(ppos - which.min(dis[(ppos-1):1]), ppos + which.min(dis[(ppos+1):length(v)]))
output
[1] 4 9
v[output]
[1] 4 2