Arrays 查找值接近另一个向量元素的向量位置

Arrays 查找值接近另一个向量元素的向量位置,arrays,r,vector,Arrays,R,Vector,我想在一个向量中找到最接近另一个向量的位置(即索引)。例如: v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5) v2 <- c(0.1, 0.33, 0.98) v1我找到了我自己问题的答案。以下是解决方案: v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5) v2 <- c(0.1, 0.33, 0.98) v1 v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5)

我想在一个向量中找到最接近另一个向量的位置(即索引)。例如:

v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5)
v2 <- c(0.1, 0.33, 0.98)

v1我找到了我自己问题的答案。以下是解决方案:

v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5)
v2 <- c(0.1, 0.33, 0.98)
v1
v1 <- c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5)
v2 <- c(0.1, 0.33, 0.98)
position <- findInterval(v2, v1) # result: c(1 2 4)
v1p <- sort(c(v1, v1 - (v1 - shift(v1))/2)) # result:  c(0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 1.125 1.250 1.375 1.500)

# Position in new vector
position_new <- findInterval(v2, v1p)

# Now if position is odd: lower bound, if position number is even: upper bound:
is.even <- function(x) x %% 2 == 0
final_position <- position + is.even(position_new)

print(final_position)
[1] 1 2 5