2017-02-15 2 views
2

私は、データフレーム、tmpを持っている:dist()は実際に何を計算していますか?

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()戻ってから矛盾です。

「ユークリッド」:2つのベクトル間の通常の距離(2ノルム別名 L_2

は、ドキュメントによれば、

利用可能な距離尺度は、(2つのベクトルxとyのために書かれた)されていると言います)、sqrt(sum((x_i_y_i)^ 2))。

どこが間違っていますか?

+4

'dist(tmp [-1])' –

+0

'dist(tmp [-1])'は私のクラスの列を取り除いて動作します。上記の私の場合、Rはクラスの文字をどのように扱っていますか? –

+1

因子値として、 'as.numeric(tmp $ class)'。 –

答えて

1

はちょうどtmpが奇妙な動作するようです

tmp[-1]がやっています。これはバグとして報告されるべきものですか?

関連する問題