2013-07-26 7 views
15

hclustを使用してデータをクラスタリングします。しかし、私はdistオブジェクトを生成するために "dist()"を使いたくありません。それから距離行列として対称行列をhclustに渡すことができないことが分かりました。対称行列を "dist"オブジェクトに変換する方法は?

対称行列を "dist"オブジェクトに変換する方法は?

答えて

15

すでに計算された行列があり、それをhclustで使用したいと思うようです。 @shadowのように、as.dist(yourMatrix)を使ってdist形式に変換することができます。距離の対称表を考えると

> yourMatrix<-matrix(c(1,2,3,4,2,1,2,1,3,2,1,3,4,1,3,1), nrow=4) 
    [,1] [,2] [,3] [,4] 
[1,] 1 2 3 4 
[2,] 2 1 2 1 
[3,] 3 2 1 3 
[4,] 4 1 3 1 
> 
>as.dist(yourMatrix) 
    1 2 3 
2 2  
3 3 2 
4 4 1 3 

はあなたのマトリックスの値が非類似、もしくは距離メトリックではなく、類似性スコアであることを確認してください。

0

これは必要なものですか? dist(matrix(1:16, nrow=4))

関連する問題