找到R中两个变量之间的最小距离

时间:2017-06-29 21:59:26

标签: r

我想找到X和Y之间距离最小的行,并在R中返回相应的Z.表3显示了这个例子。

表1

X       Z
10      0.655883255
20      0.511846995
10.5    0.995310138

表2

Y
11
12
13.5
23

表3

X       Z
11      0.99
12      0.99
13.5    0.99
23      0.511

1 个答案:

答案 0 :(得分:3)

不确定您是否必须以表格形式使用此格式,但如果它们是向量,则很容易。

x <- c(10, 20, 10.5)
z <- c(0.655883255, 0.511846995, 0.995310138)
y <- c(11, 12, 13.5, 23)
z[unlist(lapply(y, function(t) which.min(abs(x-t))))]

# [1] 0.9953101 0.9953101 0.9953101 0.5118470