我有一个用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
我不知道如何创建此矩阵...您对如何创建矩阵有任何想法吗?
最后,我想将其与如下所示的data.frame合并:
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