假设我们有两列数据框
X Y
10 14
12 16
14 17
15 19
21 19
Y的第一个元素是14,与它的最接近的值(或相同)是14(它是X的第3个元素)。类似地,Y的下一个元素最接近15,即X
的第4个元素所以,我想要的输出应该是
3
4
4
5
5
由于我的数据很大,你能否就系统/适当的代码给我一些建议?
答案 0 :(得分:1)
你可以尝试这段代码:
apply(abs(outer(d$X,d$Y,FUN = '-')),2,which.min)
# [1] 3 4 4 5 5
此处,abs(outer(d$X,d$Y,FUN = '-'))
会返回d$X
和d$Y
之间的无符号差异矩阵,而apply(...,2,which.min)
将返回行的最小位置。