计算3点的欧几里德距离

时间:2014-09-03 06:39:42

标签: r euclidean-distance

我有一个data.frame(Centroid),它包含虚拟3D空间中的点(列= AV,V和A),每个点代表一个字符(column = Character)。每行包含不同的字符。

AV<-c(37.9,10.87,40.05)
V<-c(1.07,1.14,1.9)
A<-c(0.04,-1.23,-1.1)
Character<-c("a","A","b")

centroid = data.frame(AV,V,A,Character)
centroid
     AV    V     A Character
1 37.90 1.07  0.04         a
2 10.87 1.14 -1.23         A
3 40.05 1.90 -1.10         b

我想知道每个角色之间的相似性/不相似性。例如,“a”对应于37.9,1.07和0.04,而“A”对应于10.87,1.14,-1.23。我想知道这些角色之间的距离/ 3分。

我相信我可以使用每个角色之间的欧几里德距离来计算这个,但我不确定要运行的代码。

我试图使用

dist(as.matrix(Centroids))   

但是没有成功,因为这只是在控制台中给出了一个很大的印记。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

以下可能会有所帮助:

AV<-c(37.9,10.87,40.05)
V<-c(1.07,1.14,1.9)
A<-c(0.04,-1.23,-1.1)
centroid = data.frame(A,V,AV)
centroid
      A    V    AV
1  0.04 1.07 37.90
2 -1.23 1.14 10.87
3 -1.10 1.90 40.05

mm = as.matrix(centroid)
mm
         A    V    AV
[1,]  0.04 1.07 37.90
[2,] -1.23 1.14 10.87
[3,] -1.10 1.90 40.05

dist(mm)
          1         2
2 27.059909          
3  2.571186 29.190185

as.dist(mm)
       A     V
V  -1.23      
AV -1.10  1.90

“Character&lt; -c(a,A,b)”

并不清楚你的意思