将距离列表转换为距离矩阵,而不使用R中的as.dist

时间:2018-04-16 18:10:29

标签: r

我有一个从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。

1 个答案:

答案 0 :(得分:0)

您无法使用as.dist的任何特殊原因? 这是我能得到的最接近的tidyr

spread(data,B,distance,fill=0,drop=FALSE)

如果所有A和B在数据集中的某个位置至少有一个值,则效果最佳,并且它会为您提供矩阵的两半。 (另外,如果您需要将其作为矩阵,您当然可以将其包装在as.matrix)中。