我想找到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
答案 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