Возможно:
Генерация данных:
set.seed(101)
res2 <- matrix(rexp(200, rate=.1), ncol=10, nrow=100)
Вычислить матрицу расстояний. Это очень неэффективно, потому что мы вычисляем все пары парных расстояний, но он эффективно кодируется и прост в использовании, и у вас есть множество вариантов измерения расстояния (см. ?dist
, ищите method
). Для этой проблемы размер очень быстрый.
dd <- dist(res2)
rr <- rank(as.matrix(dd)[1,])
Вы заметите, что ранг первого элемента первой строки (то есть расстояние между рядами 1 и само по себе) является 1, а его значение (as.matrix(dd)[1,1]
) равна нулю. Итак, все, что нам нужно сейчас, это строки со следующими десятью наименьшими расстояниями ...
res2[rr>1 & rr<=11,]
Как вы определяете наиболее похожие? –
Имея ближайший аналогичный шаблон. –
Я думаю, что вопрос интересный, и я уверен, что другие могут тоже, но вы не предоставили много информации (как указал Кристоф) и не воспроизводимый пример (по крайней мере, набор данных). Левенштейн приходит на ум как возможный подход (возможно, с 'agrep') –