假设我有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
答案 0 :(得分:1)
您可以使用sapply
-
sapply(m4, function(x) {
which.min(abs(x - m3))
}) %>%
matrix(ncol = 1)
[,1]
[1,] 1
[2,] 2