2011-09-20 34 views
4

在R的dist功能文檔中有以下單詞:如何在R中指定dist函數的其他方法?

方法要使用的距離度量。這必須是「歐幾里德」,「最大」,「曼哈頓」,「堪培拉」,「二進制」或「minkowski」之一。可以給出任何明確的子字符串。

但我需要根據不在列表中的自定義函數計算距離,有沒有辦法指定它?或者除了適合我情況的dist功能外,還有其他方法嗎?

我知道我可以用高興的方式做到這一點,但我正在尋找一個更好的方法來做到這一點。

謝謝。

編輯:

我使用的Th距離的方法是的關聯性分數使用皮爾森距離。有沒有一個簡便的方法呢?

+1

你能給我們一個實際的例子嗎?根據您使用的距離度量值,可能會有不可用的替代方法。但是爲了在dist函數中增加一個,你需要修改C代碼。 –

+0

'dist'不會隱藏或與方法交織在一起。所以也許只是看看代碼的幫助(在你的控制檯輸入dist並運行它)。基本上你也可以寫出你自己的功能,從dist已經爲/適合你做的事情開始。 –

+0

@ ran2:問題在於,這些方法是在C代碼中實現的,而不是在R代碼中執行的...... –

回答

8

你不能; dist()只知道如何計算一定的距離。有良好的數目在經由CRAN R封裝可用的其他距離/不相似性係數(包括vegananalogueproxy包,其中包括許多其他。)

後者代理,可特別適合您的需求。它不僅具有大量預先指定的係數,還提供了一個指定自己的距離函數的框架,然後從編譯後的代碼調用該函數,因此速度相當快。

+0

謝謝!代理包似乎是我想要的! –

相關問題