什么是dist()实际计算?

时间:2017-02-15 16:10:49

标签: r euclidean-distance

我有一个数据框tmp

  class          x          y
1   A -2.8959969 -0.3192259
2   B -0.2401775  0.5801373

我计算dist(tmp, method="euclidean", diag=TRUE, upper=FALSE, p=2),产生:

         1        2
1 0.000000         
2 3.434144 0.000000

我根本无法弄清楚这是欧几里得的距离。如果我计算出我认为欧几里德距离应该是什么,它应该是:

((A_{x} - B_{x})^2 + (A_{y} - B_{y})^2 )^0.5 = 
((-2.8959969 + 0.2401775)^2 + (-0.3192259 - 0.5801373)^2)^0.5 = 
2.803967

这与dist()返回的内容不一致。

根据它所说的文件

  

可用距离度量(为两个向量x和y编写):

     

'euclidean':两个向量之间的通常距离(2 norm aka    L_2),sqrt(sum((x_i - y_i)^ 2))。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

执行tmp[-1]

做tmp似乎表现得很奇怪。这是否应该被报告为一个错误???