Получить индекс строки # для строки, содержащей значение, наиболее похожее на значение в другом наборе данных - PullRequest
0 голосов
/ 29 мая 2019

Предположим, у меня есть 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, самые близкие значения в м3 по абсолютной разности: м3 [1,1] = 6 (rowindex = 1) и m3 [2,1] = 5 (rowindex = 2)

Итак, яхотите, чтобы матрица m5 была:

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

1 Ответ

1 голос
/ 29 мая 2019

Вы можете использовать sapply -

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

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