dist() 实际上在计算什么?
What is dist() actually computing?
我有一个数据框,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()
returns不符。
根据文档,它说
Available distance measures are (written for two vectors x and y):
‘euclidean’: Usual distance between the two vectors (2 norm aka
L_2), sqrt(sum((x_i - y_i)^2)).
我哪里错了?
做tmp[-1]
只执行 tmp 似乎表现得很奇怪。这是应该报告为错误的东西吗???
我有一个数据框,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()
returns不符。
根据文档,它说
Available distance measures are (written for two vectors x and y):
‘euclidean’: Usual distance between the two vectors (2 norm aka L_2), sqrt(sum((x_i - y_i)^2)).
我哪里错了?
做tmp[-1]
只执行 tmp 似乎表现得很奇怪。这是应该报告为错误的东西吗???