2017-02-15 45 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()回報不符。

根據該文檔,它說

推介距離措施(寫爲兩個向量x和y):

「歐幾里德」:兩個向量之間通常距離(2範數又名 L_2 ),sqrt(sum((x_i-y_i)^ 2))。

我哪裏錯了?

+4

嘗試'dist(tmp [-1])' –

+0

'dist(tmp [-1])'擺脫我的班級專欄並工作。在上面的例子中,R如何處理'class'的字符? –

+1

作爲因子值,使用'as.numeric(tmp $ class)'。 –

回答

1

tmp[-1]

這樣做只是TMP似乎運行異常。這是應該作爲一個bug報告嗎?