我有一个从A点到B点的距离列表。如何在不使用as.dist的情况下将列表转换为距离矩阵?
这是数据:
的
的A B Distance
3 10 0.2
6 9 0.2
3 5 0.4
9 10 0.4
4 8 0.5
4 5 0.6
6 7 0.7
1 2 1.4
2 10 2.6
输出应该是这样的:
1 2 3 4 5 6 7 8 9 10
1 0 1.4 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0 0
3 0 0 0.4 0 0 0 0 0.2
4 0 0.6 0 0 0.5 0 0
5 0 0 0 0 0 0
6 0 0.7 0 0.2 0
7 0 0 0 0
8 0 0 0
9 0 0.4
10 0

的
' 0'表示点之间没有链接。
我尝试了很多方法来解决这个问题而不使用as.dist。
答案 0 :(得分:0)
您无法使用as.dist
的任何特殊原因?
这是我能得到的最接近的tidyr
:
spread(data,B,distance,fill=0,drop=FALSE)
如果所有A和B在数据集中的某个位置至少有一个值,则效果最佳,并且它会为您提供矩阵的两半。 (另外,如果您需要将其作为矩阵,您当然可以将其包装在as.matrix
)中。