Найти значение на строку в матрице расстояний и вывести строки / столбцы - PullRequest
0 голосов
/ 28 августа 2018

У меня есть матрица расстояний, рассчитанная с помощью dist <- as.matrix(daisy(data_clean, metric = "gower")), а затем я создал подмножество, чтобы сравнивать только соответствующие точки данных. Результирующая матрица расстояний может быть описана с помощью:

dist <- matrix(c(0.14967638, 0.03088351, 0.26547164, 0.34354481, 0.29994279, 0.03447115, 0.0912523, 0.3662407), nrow = 2, ncol = 4)
colnames(dist) <- c("1","2","3","4")
rownames(dist) <- c("5","6")

> dist
           1         2          3         4
5 0.14967638 0.2654716 0.29994279 0.0912523
6 0.03088351 0.3435448 0.03447115 0.3662407

Примечание: Количество строк и столбцов будет меняться при каждом запуске.

Теперь я хочу найти значение, соответствующее условию value > 0 & value < 0.1, в каждой строке этой матрицы расстояний и вернуть их имена строк и столбцов, чтобы я мог объединить их с другой матрицей / data.frame.

Результирующая матрица с желаемыми значениями:

  row col
5   5   4
6   6   1

Я не могу понять, как создать эту матрицу ... У вас есть идеи, как я мог бы создать ее?


В конце я хочу объединить его с фреймом данных, который выглядит следующим образом:

   id name ...
1   1  "A" ...
2   2  "B" ...
3   3  "A" ...
4   4  "A" ...
5   5  "B" ...
6   6  "A" ...

Конечный результат должен выглядеть следующим образом:

   id name ... similar
1   1  "A" ...      NA
2   2  "B" ...      NA  
3   3  "A" ...      NA
4   4  "A" ...      NA
5   5  "B" ...       4
6   6  "A" ...       1
...