搜索其他列中最接近的值

时间:2015-02-10 16:45:34

标签: r time-series

假设我们有两列数据框

 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

由于我的数据很大,你能否就系统/适当的代码给我一些建议?

1 个答案:

答案 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$Xd$Y之间的无符号差异矩阵,而apply(...,2,which.min)将返回行的最小位置。