我有一个数据框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))。
我哪里错了?
答案 0 :(得分:1)
执行tmp[-1]
做tmp似乎表现得很奇怪。这是否应该被报告为一个错误???