获取包含与另一个数据集中的值最相似的值的行的行索引号

时间:2019-05-29 01:12:13

标签: r matrix automation data-manipulation

假设我有2个矩阵m3和m4:

m3 <- matrix(6:1,nrow=3,ncol=1)

    [,1]
[1,]   6
[2,]   5
[3,]   4

m4 <- matrix(6:1,nrow=2,ncol=1)

    [,1]
[1,]   6
[2,]   5

对于m4中的每个行值(6和5),我希望m3的索引行包含最类似于m4的行值的值(按绝对差)。

因此,由于m4 [1,1] = 6且m4 [2,1] = 5,所以m3中的绝对差最接近的值为m3 [1,1] = 6(rowindex = 1),并且m3 [2,1] = 5(rowindex = 2)

所以,我希望矩阵m5为:

    [,1]
[1,]   1
[2,]   2

1 个答案:

答案 0 :(得分:1)

您可以使用sapply-

sapply(m4, function(x) {
  which.min(abs(x - m3))
}) %>% 
  matrix(ncol = 1)

     [,1]
[1,]    1
[2,]    2