У меня есть матрица расстояний, рассчитанная с помощью 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