首页 > 解决方案 > 获取包含与另一个数据集中的值最相似的值的行的行索引#

问题描述

假设我有 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 (行索引=2)

所以,我希望矩阵 m5 是:

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

标签: rmatrixautomationdata-manipulation

解决方案


你可以使用sapply-

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

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

推荐阅读