我想知道是否存在一种更直接的方法来找到向量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
答案 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